473,756 Members | 1,964 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Keypress event back to caller from control

Tom
I have a VB.NET user control that I wrote - this control has three or four
other controls on it (textbox, combobox, datetime picker, etc). Now,
whenever the control is on a form and the user enters anything into the
textbox (for instance) I trap the keypress event to handle some stuff (i.e.
if it is an enter key, etc). Now, once I am done with handling the keypress
event for the textbox, I then need to pass that keypress event BACK to the
main form that is hosting the control. I can't just define another KeyPress
event and try a RaiseEvent because the control already has a keypress event.

I must be brain dead or something today, because normally I should be able
to figure this out but it just isn't coming to me. Once I am done with the
KeyPress event in my control, how can I pass that event (and it's data -
i.e. what key was pressed) back to the host form?

Tom
Nov 20 '05 #1
4 4532
Can you override the controls KeyPress event in the parent form, and then
just call the KeyPress event for the parent form when your done?

Or else raise a public event in the control and catch it in the parent form
(passing along
(ByVal sender As Object, ByVal e As System.EventArg s)) info and then call
the KeyPress event in the parent?

public class MyControl()

Public Event OnTextBox1KeyPr ess (ByVal sender as Object, ByVal e As
System.EventArg s)

Private Sub TextBox1_KeyPre ss (ByVal sender as Object, ByVal e As
System.EventArg s)

'Do something

RaiseEvent OnTextBox1KeyPr ess (sender,e)

End Sub

End Class

Public Class MyForm

Dim testcontrol as New MyControl

Private Sub testcontrol_Key PressHandler (ByVal sender as Object, ByVal
e As System.EventArg s) _ Handles testcontrol_OnT extBox1KeyPress

MyForm_KeyPress (sender,e)

End Sub

Private Sub MyForm_KeyPress (ByVal sender as Object, ByVal e As
System.EventArg s) Handles MyForm.KeyPress

'Do Something

End Sub

End Class

I'm sure there is a better way, but this should work fairly easy as well.

Eric Dreksler

"Tom" <to*@nospam.com > wrote in message
news:%2******** ********@TK2MSF TNGP12.phx.gbl. ..
I have a VB.NET user control that I wrote - this control has three or four
other controls on it (textbox, combobox, datetime picker, etc). Now,
whenever the control is on a form and the user enters anything into the
textbox (for instance) I trap the keypress event to handle some stuff (i.e. if it is an enter key, etc). Now, once I am done with handling the keypress event for the textbox, I then need to pass that keypress event BACK to the
main form that is hosting the control. I can't just define another KeyPress event and try a RaiseEvent because the control already has a keypress event.
I must be brain dead or something today, because normally I should be able
to figure this out but it just isn't coming to me. Once I am done with the
KeyPress event in my control, how can I pass that event (and it's data -
i.e. what key was pressed) back to the host form?

Tom

Nov 20 '05 #2
Is this for validation?

If so you could use the CausesValidatio n approach.

Schneider
"Eric Dreksler" <ericd AT accessoneinc DOT com> wrote in message
news:#r******** *****@TK2MSFTNG P10.phx.gbl...
Can you override the controls KeyPress event in the parent form, and then
just call the KeyPress event for the parent form when your done?

Or else raise a public event in the control and catch it in the parent form (passing along
(ByVal sender As Object, ByVal e As System.EventArg s)) info and then call
the KeyPress event in the parent?

public class MyControl()

Public Event OnTextBox1KeyPr ess (ByVal sender as Object, ByVal e As
System.EventArg s)

Private Sub TextBox1_KeyPre ss (ByVal sender as Object, ByVal e As
System.EventArg s)

'Do something

RaiseEvent OnTextBox1KeyPr ess (sender,e)

End Sub

End Class

Public Class MyForm

Dim testcontrol as New MyControl

Private Sub testcontrol_Key PressHandler (ByVal sender as Object, ByVal e As System.EventArg s) _ Handles testcontrol_OnT extBox1KeyPress

MyForm_KeyPress (sender,e)

End Sub

Private Sub MyForm_KeyPress (ByVal sender as Object, ByVal e As
System.EventArg s) Handles MyForm.KeyPress

'Do Something

End Sub

End Class

I'm sure there is a better way, but this should work fairly easy as well.

Eric Dreksler

"Tom" <to*@nospam.com > wrote in message
news:%2******** ********@TK2MSF TNGP12.phx.gbl. ..
I have a VB.NET user control that I wrote - this control has three or four other controls on it (textbox, combobox, datetime picker, etc). Now,
whenever the control is on a form and the user enters anything into the
textbox (for instance) I trap the keypress event to handle some stuff

(i.e.
if it is an enter key, etc). Now, once I am done with handling the

keypress
event for the textbox, I then need to pass that keypress event BACK to the main form that is hosting the control. I can't just define another

KeyPress
event and try a RaiseEvent because the control already has a keypress

event.

I must be brain dead or something today, because normally I should be able to figure this out but it just isn't coming to me. Once I am done with the KeyPress event in my control, how can I pass that event (and it's data -
i.e. what key was pressed) back to the host form?

Tom


Nov 20 '05 #3
"Tom" <to*@nospam.com > wrote in message news:<#r******* *******@TK2MSFT NGP12.phx.gbl>. ..
I must be brain dead or something today, because normally I should be able
to figure this out but it just isn't coming to me. Once I am done with the
KeyPress event in my control, how can I pass that event (and it's data -
i.e. what key was pressed) back to the host form?

Tom


Do you need to return the sender as well? Otherwise, calling
<control>.OnKey Press(e), where e is the event data object you
intercepted, should do it, right?

John Fiala
jcfiala523-at-hotmail.com
http://www.livejournal.com/users/fiala_tech/
Nov 20 '05 #4
Actually the form will get the event first if the Form.KeyPreview is set.

if you set the "e.handled=True " in the form, i think the control never gets
it.

Schneider

"John Fiala" <jc********@hot mail.com> wrote in message
news:f2******** *************** ***@posting.goo gle.com...
"Tom" <to*@nospam.com > wrote in message

news:<#r******* *******@TK2MSFT NGP12.phx.gbl>. ..
I must be brain dead or something today, because normally I should be able to figure this out but it just isn't coming to me. Once I am done with the KeyPress event in my control, how can I pass that event (and it's data -
i.e. what key was pressed) back to the host form?

Tom


Do you need to return the sender as well? Otherwise, calling
<control>.OnKey Press(e), where e is the event data object you
intercepted, should do it, right?

John Fiala
jcfiala523-at-hotmail.com
http://www.livejournal.com/users/fiala_tech/

Nov 20 '05 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

12
24189
by: Trevor Fairchild | last post by:
I'm writing a program that is designed for quick navigation using specific buttons on the keyboard. In doing this, I have added a KeyPress event for every control on the form to intercept the key pressed and pass it to a standard subroutine that identifies what action should be taken. Unfortunately, I have a web-browser contol on the form and the webbrowser does not include a KeyPress event. I need some way to intercept keypress and...
8
37109
by: William Ortenberg | last post by:
I'm trying to capture when a user presses a particular key (escape), so I'm coding in the KeyPress event. Yet the code seems be bypassed (breakpoint is never encountered). Should I be coding in a different event? Is this a known issue? FYI, this is happening in both Access 97 and 2000.
0
1352
by: news.gorge.net | last post by:
I want to fire an event when a user presses Control+C when NOT in a situation where that keypress combo would copy something to the clipboard. My current attempt was to override the ProcessDialogKey method in the control, since the KeyPress event doesn't let you know about the Control key presses. In order to not fire my event off when one actually wants to copy something to the clipboard, I put in a call to base.PreocessDialogKey()...
1
6180
by: Rene | last post by:
Hi, I am running is some problems with the KeyPreview and KeyPress events. The KeyPress event is only triggered when there this an focusable control on the form. When all controls are disabled the Form.KeyPress event does not trigger anymore. A way to 'solve' this is to set the focus to the form, but during testing it happens ofter the keypress event is not getting triggered on keys like
10
27882
by: Tim Frawley | last post by:
I am attempting to detect a Shift+Tab in the KeyPress event for back navigation on a control that doesn't support this method. Does anyone have any ideas how to compare e.KeyChar to a ShiftTab? Tim
15
4054
by: Adam J. Schaff | last post by:
I have noticed that if a user closes a form via pressing return (either while the OK button has focus or if AcceptButton is set to OK for the form) then the "ENTER" keypress event fires ON THE CALLING FORM! This is very bad for me, because in my application, Form1 responds to an ENTER keypress by calling Form2. If the user closes Form2 via an ENTER, then Form1 just reopens it again, kind of trapping the user in Form2 (they can still close...
3
6863
by: Fia | last post by:
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...
8
36136
by: hoofbeats95 | last post by:
I don't think this should be this complicated, but I can't figure it out. I've worked with C# for several years now, but in a web environment, not with windows form. I have a form with a query button on it. If the query returns multiple results, a new window is opened with a grid containing the results. When the user double clicks on the desired row in the grid, I want the first form to populate with the correct data. I don't know how...
2
19295
by: Tony Johansson | last post by:
Hello! I have created a Control that consist of a label and a textbox.I have called this class ctlLabelTextbox. public partial class ctlLabelTextbox : UserControl { .... } The class that I have created for this purpose is derived from class UserControl.
0
9462
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
10046
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
9886
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
8723
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
0
6542
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5318
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
3817
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
3369
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2677
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.