-
ActiveControl.Name
I am entering data in a Textbox, and then using the tab to change focus to a second Textbox. Both textboxes are defined in a Handles statement on a Textbox_Validating event.
Private Sub TextBox_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating, TextBox2.Validating
'ActiveControl.Name has TextBox2 when
' tabbing from Textbox1 to Textbox2
End Sub
I wanted to use a generic routine for simplicity. But in the validating event, I see that the ActiveControl.Name is the name of the second textbox, not the first textbox that I expected since it is the value in the first textbox that I am trying to validate.
Further testing shows that the Enter and GotFocus events maintain the ActiveControl.Name value of the first textbox. But
the Leave, Validating, Validated, and LostFocus events change
and have the value of the second textbox.
Is there some other generic way to tell in the Validating event which control is being validated?
Thanks,
Dave
-
You should be able to use the sender object that you are passing into the validate method to determine what control fired the event.
-
Forgot the sample - You should be able to do something like:
-
That's what I would have thought also. But sender does not have a .Name property.
-
It's because sender has been upcasted to object. Cast the object to either its underlying type or to Control and check the name property.