|
web
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Keypress??Hi
In Visual Basic 6 I could call keypress with an integer of a choosen key. For example I could call a textbox's keypress with the number 13 (for the enter key). But now in Visual Basic .Net I don't know how I shall do to do the same thing. I have tried to send Keys.Numpad8, but then it complains about it cannot convert from Keys to keyEventArgs I have also tried to send the number 8, but then it complains it cannot convert from Integer to keyEventArgs Can anyone help me, please Thanks Fia Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown If e.KeyCode = Keys.Enter Then MessageBox.Show("Enter Key Was Pressed") End If End Sub "Fia" <fiao***@telia.com> schrieb: \\\> In Visual Basic 6 I could call keypress with an integer of a choosen key. > For example I could call a textbox's keypress with the number 13 (for the > enter key). But now in Visual Basic .Net I don't know how I shall do to do > the same thing. I have tried to send Keys.Numpad8, but then it complains > about it cannot convert from Keys to keyEventArgs I have also tried to > send > the number 8, but then it complains it cannot convert from Integer to > keyEventArgs Dim CharacterCode As Integer = 13 FooTextBox_KeyPress( _ Me.FooTextBox, _ New KeyPressEventArgs(ChrW(CharacterCode)) _ ) /// -- M S Herfried K. Wagner M V P <URL:http://dotnet.mvps.org/> V B <URL:http://classicvb.org/petition/> Fia wrote:
> I have tried to send Keys.Numpad8, but The parameters that are passed to the events of control have changed a lot> then it complains about it cannot convert from Keys to keyEventArgs I > have also tried to send the number 8, but then it complains it cannot > convert from Integer to keyEventArgs > Can anyone help me, please between VB6 and VB.NET. In VB6, you would get a list of parameters that changed from one event type to the next, containing all the relevant information (keycodes, mouse positions, etc.). In VB.NET, you will always get two objects passed as your event parameters: sender (which will point to the control that caused the event to fire) and a second parameter usually called "e" or "eventArgs" which contains all the relevant data for the event. The object type of "e" will change from one event to another. An event such as a button click that doesn't provide any extra information will provide an object of type "System.EventArgs". The object type passed to a KeyPress event is of type "System.Windows.Forms.KeyPressEventArgs". If you look at this object within your keypress event, you'll see if has all the information you need to respond to the keypress (specifically the KeyChar, which tells you which key was pressed, and the Handled property which if set to True tells VB to ignore the keypress because you've already dealt with whatever it was supposed to do). In order to call the Keypress event procedure, you will need to provide both of these objects (sender and e). For sender, just pass the control that the user interacted with (or pass Nothing if there's nothing relevant, it's up to your code to deal with this object however you need, or ignore it totally if you want). For e, you will need to create a new KeyPressEventArgs object. The constructor of this object allows you to specify what keycode you want it to contain. I created a simple form with a button (Button1) and a textbox (Textbox1). The textbox displays whatever key you press when it has the focus. The button calls its KeyPress event and tells it that "A" was pressed. \\\ Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles Button1.Click TextBox1_KeyPress(Button1, New System.Windows.Forms.KeyPressEventArgs("A"c)) End Sub Private Sub TextBox1_KeyPress(ByVal sender As Object, _ ByVal e As System.Windows.Forms.KeyPressEventArgs) _ Handles TextBox1.KeyPress Me.TextBox1.Text = "Key: " & e.KeyChar e.Handled = True End Sub /// As you can see, clicking the button makes the textbox think that "A" was pressed. (The letter "c" after the "A" in the Button1_Click procedure tells VB that "A" is a character, not a string, as the KeyPressEventArgs procedure excepts a single character to be provided). However, having said all of that, my recommendation would be that you change your code so that you don't need to do this. It's much better IMO to create a separate function to handle the pressed key, and call it from both the KeyPress and the Click events. This was you know that if the KeyPress event fires it is always because a key was pressed. It can make the code much easier to read and maintain in the future, particularly if someone else is likely to work on the same code. Hope that helps, -- (O) e n o n e
Draw Line of Form?
clear backstyle for lable control? Question about declaritive Role Based security... Opening a file over the internet Using MSDN examples Database filepath got overrided by OpenFiledialog??? formatting Dates? Programmable breakpoints? Hyperlinks Does anyone help me convert vb.net to c# |
|||||||||||||||||||||||