|
Yes, after seeing the video I see that Windows is not a video-game. It does flicker sometimes when it is painting controls.
You can "stop" Windows from drawing the screen altogether[^], which keeps the last image until something moves over it, leaving a white trail. Setting your form to be double-buffered[^] might help also.
And yes, it will still flicker a lil' bit. If you want "instant" controls, you'd have to talk to the WinAPI directly. Creating a textbox in a window with a button is fast, but rather complex to manage.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Hello !
On my form I have a button that has a specific function and a specific caption.
But when the user press the shift button , I want to change the caption of this button.
I handle the Form.Keydown , and using this I can do this.
But the problem is that if the user has edited a textbox , or has focused another control , the Form.keydown is not fired.Of course I can handle the control.keydown , but I have so many controls in the form that this way seems not very comfortable.
So is there any way in general to detect that the shift key is pressed ?
Thank you !
|
|
|
|
|
On your form, set the KeyPreview property to True.
|
|
|
|
|
and after ?
What event should I use ?
Thank you !
|
|
|
|
|
The Form.Keyxxx events.
I thought you said you already had that stuff working at that level?
If you're just trying to detect the Shift key all it's own there is no event that will fire just on that key. It's a Key MODIFIER, not a real key.
|
|
|
|
|
Thank you !
Using your suggestion , the only way I've found is this :
Private Sub MyForm_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown, MyBase.KeyUp
If My.Computer.Keyboard.ShiftKeyDown Then
........
Else
..........
End if
End Sub
This is working, but is this correct ?
And if I want a general way ( to detect a general key ) , what is the way ?
I have a problem that I've detected now :
All the other cases are working except this :
If I press the shift key , the button caption is changed.
Keeping the shift key down , I press this button , and a MessageBox is showing.
Now I release the shift key.
But the button's caption is not changed back to default.
What can I do ?
Thank you !
modified 21-Jun-15 20:42pm.
|
|
|
|
|
I think, there is no reason to speak louder or to be angry ...
When I read the original question and yout last Replay, I think, you have got the answer by yourself but you don't want to realize it.
If a Control hast the Focus no one else has it. If you Eventhandler works with the Form and the Control has the Focus this Eventhandler not called - I think that this is easy to understand.
What you can do now is what you said in the beginning : You have to add a handler to each Control what you think that it is necessary - not more and not less.
You could do it with a Loop in the Form.OnLoad-method with the command AddHandler - but remember - if the Form become disposed you have to remove all this handlers (RemoveHandler).
Do you think, that you could realize that ?
|
|
|
|
|
sorry , but using the Dave's solution , I was able to do this using only the form's Keydown/Keyup event.So even a control has focus , this is working. Only the case that I have posted in bold have the problem.
|
|
|
|
|
Do you understood my Suggestion ?
|
|
|
|
|
Do you understand the Dave's solution , and my case ? I don't need to add handlers for each controls.
|
|
|
|
|
At first you need to use to KeyEventArgs from the Event. They telling you directly that (for example) the Shift-Button is pressed.
Then : you need to connect this method to each Control, which could have the Focus. And also to the Form.
|
|
|
|
|
1) I have enabled the KeyPreview property on the form.
2) after I've used this event :
Private Sub MyForm_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown, MyBase.KeyUp
If My.Computer.Keyboard.ShiftKeyDown Then
........
Else
..........
End if
End Sub
Only with these 2 steps, almost everything Is working. So when I'm on the form , I can focus any control , and if I press the shift button , the event is working.
The only thing that doesn't work is when a MessageBox is showing. After that , the event doesn't fire when I release the shift button.
|
|
|
|
|
The MessageBox is another Form ...
What about calling your method "MyForm_KeyDown" additional by a Timer ...?
|
|
|
|
|
And what if I release the shift key after the time is expired ?
|
|
|
|
|
The Timer repeats it's Tick as long as the Timer itself is activated.
So ... if you ask für the state of the Shiftkey you will get this Info by the next Timer.Tick
You only have to decide, which Timer-Intervall is the right value for you. I would suggest something between 100 milliseconds and 500 milliseconds.
modified 23-Jun-15 4:40am.
|
|
|
|
|
Hi ,
I have VB6 Application project which is load in Windows XP but when try to load in Windows 7 32 Bit it fails .
Even I try to register manually OCX file but it gives error registry fails to register the file.
I need to registered several OCX file but could not get success.
Like MSCOMCTL32.ocx also not registered.
Regards,
LT
|
|
|
|
|
Hello !
I'm trying to implement a Event Log on my vb.net Application + Sql server database.
I have an Event table that keep all the event that are happening when using the database , and where it's necessary the event record can contain link to the Table and record related with this event.
The idea is working , but I have 2 problems:
1) The Event table is growing very fast . Do you think it's better to keep inside my main database , or to move to another database ?
2) I need a suggestion about the events that are related to Deletions. Since I can't keep a link to these records ( because they are deleted ) , how can I inform the users about the deleted record related to this event ?
Thank you !
|
|
|
|
|
satc wrote: 1) The Event table is growing very fast . Do you think it's better to keep
inside my main database , or to move to another database ? I'd put it in a separate database on the server, with its own backup policy. I'd also recommend to not broadcast "every" message, but to have the severity as a setting.
satc wrote: 2) I need a suggestion about the events that are related to Deletions. Since I
can't keep a link to these records ( because they are deleted ) , how can I
inform the users about the deleted record related to this event ? "Record X has been deleted". The only way to say what was in record X is by keeping a copy and not deleting it.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Quote: I'd also recommend to not broadcast "every" message, but to have the severity as a setting.
Can you explain this , because I don't understand it.
Thank you !
|
|
|
|
|
You are now sending multiple types of messages, and they flood your table?
If you don't need all those messages everytime, then you might want to consider to "not send" them until you throw a switch somewhere. As in, only get the messages you are interested in, when they are relevant.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Still I'm not clear what you are saying.
I store any kinds of events like :
- A new record is added
- A record is deleted
- A record is modified
- A report is created
- A database backup/restore is made
- A Import/Export is made
....
So for what kind of messages are you talking about ?
Thank you !
|
|
|
|
|
Any of the above. If you need all of those messages, then yes, you'll to reserve space for them.
Do you really "need" them all, all the time? Or could you live with the fact that "modification" messages are only sent if it was configured to send them?
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
I need them because the company's administrator want at any time to see what the users have done at a specific day or time.
|
|
|
|
|
Then it will become a large table; it works the same as with old fashioned books - if you are going to write a lot of them, they will require more space.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
So , your final suggestion is to keep this table inside the main database , or to have another database that will keep only the Event table ?
|
|
|
|