overrides help please

M

Merlin

I have created a users control with a text box and button on it, what I want
to do is override the usercontrol Keydown events with that of the Text box.
What is the correct syntax to accomplish this?

Example of my text box sub:-
Private Sub Edit_KeyDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyEventArgs) Handles Edit.KeyDown
End Sub

Thanks
 
H

Herfried K. Wagner [MVP]

Hello,

Merlin said:
I have created a users control with a text box and button on it,
what I want to do is override the usercontrol Keydown events
with that of the Text box. What is the correct syntax to accomplish
this?

What behavior would you expect?

Regards,
Herfried K. Wagner
 
A

Armin Zingler

Merlin said:
I have created a users control with a text box and button on it, what
I want to do is override the usercontrol Keydown events with that of
the Text box.

???
Sorry, I don't get your intention.
 
M

Merlin

Sorry, I'll try to make myself clearer:-

What I want to be able to do is place my UserControl on a form and then in
the UserControl KeyDown Event trap key presses from my text box that is
within the UserControl. So in otherwords override the UserControl KeyDown
Events with the Text box KeyDown Events.

Thanks,
Merlin
 
A

Armin Zingler

Merlin said:
Sorry, I'll try to make myself clearer:-

What I want to be able to do is place my UserControl on a form and
then in the UserControl KeyDown Event trap key presses from my text
box that is within the UserControl. So in otherwords override the
UserControl KeyDown Events with the Text box KeyDown Events.

Now I think I understand - if you leave out the last sentence. ;-)

You can handle the textbox' keypress event in the Usercontrol:

Private Sub TextBox1_KeyPress( _
ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs) _
Handles TextBox1.KeyPress

End Sub

Still I don't think that's what you wanted to know, so...
 
H

Herfried K. Wagner [MVP]

Hello,

Armin Zingler said:
Now I think I understand - if you leave out the last sentence. ;-)

You can handle the textbox' keypress event in the Usercontrol:

Private Sub TextBox1_KeyPress( _
ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs) _
Handles TextBox1.KeyPress

End Sub

Still I don't think that's what you wanted to know, so...

I think merlin wants to forward/redirect the keyboard input of the textbox
to the usercontrol. Every time the user presses a key in the textbox, the
usercontrol's KeyPress event should be raised.

Regards,
Herfried K. Wagner
 
F

Fergus Cooney

Hi Merlin,

If the other responses haven't quite answered your question (I
find it quite ambiguous), can you tell us <why> you want this override
and what you hope to achieve?

Regards,
Fergus
 
M

Merlin

Sorry, I'll try to make myself clearer:-

What I want to be able to do is place my UserControl on a form and then in
the UserControl KeyDown Event trap key presses from my text box that is
within the UserControl. So in otherwords override the UserControl KeyDown
Events with the Text box KeyDown Events.

Thanks,
Merlin
 
H

Herfried K. Wagner [MVP]

Hello,

Merlin said:
What I want to be able to do is place my UserControl on a form and then in
the UserControl KeyDown Event trap key presses from my text box that is
within the UserControl. So in otherwords override the UserControl KeyDown
Events with the Text box KeyDown Events.

Untested (!), code for the UserControl:

\\\
Private Sub TextBox1_KeyDown( _
ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyEventArgs _
) Handles TextBox1.KeyDown
MyBase.OnKeyDown(e)
End Sub
///

HTH,
Herfried K. Wagner
 
M

Merlin

Ok here goes,

I have created a control that has a text box and a button at the end of the
text box, I want my control to totally emulate a text box, but have the
added addition of a button at the end. The idea of this control is to allow
a user to input text in the normal manner or press a button to display a
pick list.

Therefore I want the usercontrol events all overridden with the Text box
events. As it stands If I were to place my user control on a form and trap
the usercontrol keydown event when entering text, I'd only be trapping
events for the user control so get nothing whereas I want to trap the text
box events:-

i.e
instead of UserControl.TextBox1.Keydown
I want UserControl.Keydown to be exactly the same.

Hope thats clearer.

Thanks

Merlin.
 
A

Armin Zingler

Merlin said:
Ok here goes,

I have created a control that has a text box and a button at the end
of the text box, I want my control to totally emulate a text box, but
have the added addition of a button at the end. The idea of this
control is to allow a user to input text in the normal manner or
press a button to display a pick list.

Therefore I want the usercontrol events all overridden with the Text
box events. As it stands If I were to place my user control on a form
and trap the usercontrol keydown event when entering text, I'd only
be trapping events for the user control so get nothing whereas I want
to trap the text box events:-

i.e
instead of UserControl.TextBox1.Keydown
I want UserControl.Keydown to be exactly the same.

Hope thats clearer.

It is.

- Event bubbling: Handle the textbox' events in the usercontrol and, for
each event, raise an event in the usercontrol that can be handled outside
(lot of work).

- Make the textbox public (or friend). Outside the Usercontrol, you can use
Addhandler MyUserControlInstance.MyTextbox.Textchanged, addressof ...
 
J

Jay B. Harlow [MVP - Outlook]

Merlin,
Say the following without using the word 'overridden'! :-|
Therefore I want the usercontrol events all overridden with the Text box
events.

I believe the word 'overridden' above is what is confusing every one about
your post.

If you want each TextBox event to raise the respective usercontrol event
then you need to do as I & Herfried pointed out earlier.

Note if you are not seeing OnKeyDown method from Herfried's & my earlier
posts, use "Tools - Options - Text Editor - Basic - General - Hide advanced
members" to see all the On* event methods in UserControl & Control.

Hope this helps
Jay
 
M

Merlin

Thanks Jay and Hertfried,

I thought overrides is what I needed, which is why like you said I confused
everyone.

Next question then:
What does override do or when should it be used?

Regards,
Merlin
 
F

Fergus Cooney

Hi Merlin, Armin,

"And the prize goes to ..... Armin Zingler - for his Event Bubbling."

The ideal purpose of a UserControl is to provide a composite Control which
conforms as far as possible to the standards of the basic Controls. This means
that the designer (you) should do as much as possible to make your UserControl
interface act as expected for a Control.

Which means do the work!!

Regards, both,
Fergus
 
C

Cor

Hi,
Terrific good written Jay with very good in mind the not native speaking
English people.
Cor
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top