One, remove the "control Box" from the form, so the user cant close it that way. in the btn Cancel_Click event: Removehandeler Text Box1.validating, Addressof Text Box1_Validating -- Terry "Darin" wrote: I know that, but the problem is when the user clicks EXIT, the textbox.validating event is called BEFORE the cancel.click is done, so the textbox is being validated. According to the documentation: "The cancel button for a form is the button control that is clicked whenever the user presses the ESC key." Which says to me the behavior s/b the same! To Short Date String Else Msg Box("Please enter a valid date.") e.
VB6 controls fire the Validate event first and then the Lost Focus event; if the Validate sets Cancel=True, then the Lost Focus event is never fired.
The sequence is the same regardless of how the end user moves the input focus away from the control. NET controls fire these events in the same sequence only if end users move the input focus by means of the keyword; if they use the mouse, the control fires a Lost Focus event, then the Validating event, and – if the validation fails – another Got Focus event to let the application know that the focus is again on the control. NET programs created by VB Migration Partner follow the . In most cases, the fact that the Lost Focus event fires before the Validate event doesn’t affect the application negatively.
Back Color = vb White End Sub Private Sub Text1_Validate(Cancel as Boolean) Cancel = (Text1. In some applications, however, the code in the Text1_Lost Focus method might depend on some variable that has been set in the Validate event.
Text = "") End Sub Now consider the corresponding VB. If the end user clicks on a different control and Text1 contains an empty string, the Lost Focus event resets the background color to white, then the Validate event cancels the focus shift, and finally the Got Focus event changes the background color to yellow again. If this is the case, the converted code might fail or behave unexpectedly.
However, for code readability, it would make sense to place all validation code in the Validating event.
So, which is the better option, in terms of both efficiency and industry-standards?Then in the btn Cancel_click event, either set a module level variable like m Canceling to True and then in the validating event ... I've been fighting the same problem for some time now. I think that the only way to do this is to grab the mouse coordinates in the validating event, do a Window From Point API call, then compare the returned HWND to the Cancel Button's Handle. Close() End Sub Private Sub Text Box1_Validating(By Val sender As Object, By Val e As System. When you click on the button the validating event fires. If the handle matched then immediately exit the Validating event without setting e. -- Al Reid I had tried all of that, *BUT*, I had neglected to set the button's Causes Validation to False. I just don't know what key code combination could direct focus to a text box control that should never receive focus since the Tab Stop property is false and there is no other code that sets focus to the textbox. Also in the docs on Key Down there is a mention of "Is Input Key" which I will have to look into. However, after I removed the "canceling" flag and added the "e.cancel=False" to the form's Form Closing event, I once again see the validation when clicking on the cancel button, but the form then closes after displaying the validation error. -- Al Reid "Terry" Hi Al, Don't know if you have been following the thread I started about the escape key "bug", but if you search this community for "Cancel Button vs Escape Key", you can see the result including the work around for the escape key. NET controls is in the order in which they fire the Lost Focus and Validate events.LISTING 5.4 USING THE VALIDATE EVENT PROCEDURE Private Sub txt Age_Validate(Cancel As Boolean) If Not Is Numeric(txt Age. The first Quick Tip Validation Guide defined validation as "the process of checking whether entered data is what it needs to be for the system to work correctly." And I noted in that article that: Windows form controls that have a Causes Validation property can fire a whole family of events when the focus shifts from the control.You can choose from: None - validates all child controls Selectable - validates child controls that can be selected Enabled - validates child controls where Enabled is true Visible - validates child controls where Visible is true Tab Stop - validates child controls that have a Tab Stop value Immediate Children - validates child controls that are directly hosted in the container, but not the children of these children One last warning ...