Click here to Skip to main content
15,867,330 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
I'm using a richTextbox, just to load a textfile and view it, while looped scrolling.
I don't want users to be able to add, change, select, open other files in the box, etc.
I disabled the arrow keys on the Form, so you can't use them to switch to the Box.
So far I've used the following:

For the Events of the richTextBox:
- MouseClick; MouseDoubleClick; MouseDown; MouseMove; MouseUp;
C#
Buttonx.Focus();

When my application runs, I can click, hold down and move, without anything happening.
That's good, but I discovered that when I use the middle mouse button or right mouse button (both click) without using the left first, then the text starts over again just once...?

It seems I can't block users from using the other buttons and the problem is it does something to the functionality of my application.

I tried code like:
C#
if (e.Button==MouseButtons.Right)
// AND somthing like
if (e.MousebuttonPressed==System.etc)


I also tried to make a layer above the box and make it invisible, but invisible means not interactive as well... :(
If I click, it goes through my layer!

Nothing worked, if I tried to make a simple popup on left and right click, it only appears on left click.. Anyone that knows a solution to block those mousepresses on the box?

For my total Project and (source) downloads to try, refer to:
Creating a NFO Viewer in C# as a beginner[^]:
Posted

Does the richtextbox have an enabled property or a readonly property these are the usual way of freezing the content.
 
Share this answer
 
Comments
Sergey Alexandrovich Kryukov 23-Jan-13 4:18am    
Unfortunately, this is not what OP wants. Look thoroughly. It should not be selectable, the user should not be able to copy it, etc.

Please see my answer where I explain what I think about it. Actually, normally it should be read-only and that's it...
This is the second time I see such request... doh!

—SA
DarkTyranno 23-Jan-13 4:36am    
Yes, ReadOnly = True and Enabled must be True, because disabling the richTextBox prevents some custom settings to work.
I know it's not the regular setting for applications, but I make a NFO Viewer which I put with releases. I just want to view the text as ending credits in a movie. I don't get why people often hammer on others who want to use settings that are abnormal. This is no real application which end users have to install and use, it's just a standalone executable which reads the file. Please refer to my project in question if you want to get why I want to use these settings ;)
Use the RichTextBox to render your output. Just don't let it draw to the scree, but to an image instead. Then display that image instead of an actual control.

This functionality can be built into something derived from UserControl, Control, Panel or whatever seems more practical for you.
 
Share this answer
 
Comments
DarkTyranno 23-Jan-13 6:33am    
It sounds hard. I'm working with C# for just some weeks, so I don't really get how to do that. But the idea sounds great, I can try to do some research for this option. Maybe some other options will appear, I go try it.
What you want to do is clear, shameless, unreasonable abuse. Protecting anything you show from, say, selecting or copying is the most rude violation of elementary natural user's right. The main looser in such cases is the developer. Users won't use your product when they see it. All you really need is the readonly document.

However, making non-selectable document is quite easy. It cannot be Rich Text, but as a custom-rendered text it's not a big problem. But you will need to do it totally from scratch, starting from Control class (or UIElement for .NET).

I can only add the explanation: why you should start from scratch. This is because developers of .NET UI libraries understand well what I tried to explain in the first paragraph. The controls you thing you need are not really needed, that's why they are not available.

—SA
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900