當用戶單擊關閉應用程序的「X」圖標或用戶單擊關閉應用程序中的按鈕時,是否有一種簡單的方法來禁用所有表單驗證應用?當用戶關閉應用程序時,在所有表單上禁用驗證
我發現這個,但它在C#中。你可以將其轉換爲VB.Net編碼嗎?
當用戶單擊關閉應用程序的「X」圖標或用戶單擊關閉應用程序中的按鈕時,是否有一種簡單的方法來禁用所有表單驗證應用?當用戶關閉應用程序時,在所有表單上禁用驗證
我發現這個,但它在C#中。你可以將其轉換爲VB.Net編碼嗎?
找到了!
我把這個代碼在按鈕單擊處理程序:
' Disable validation on the form.
'--------------------------------
Me.AutoValidate = System.Windows.Forms.AutoValidate.Disable
當我再次致電形式我用這個表單對象調用objFormParents:
' Reset validation on this form because the user may have closed it before.
'--------------------------------------------------------------------------
objFormParents.CausesValidation = True
我發現這個在互聯網上處理單擊「X」圖標:
' This will allow the user to close the form without the worry of controls doing validation from "X".
'----------------------------------------------------------------------------------------------------
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
Select Case ((m.WParam.ToInt64() And &HFFFF) And &HFFF0)
Case &HF060 ' The user chose to close the form.
Me.AutoValidate = System.Windows.Forms.AutoValidate.Disable
End Select
MyBase.WndProc(m)
End Sub
我發現了另一種實現此方法的方法olution
首先聲明一個公共屬性
Private bFormClosing As Boolean = False
那麼你有這個布爾在您的驗證碼與和類似
. . . And bFormClosing = False then
這裏使用
ErrorProvider.SetError("My Error Message")
e.Cancel = True
Else
e.Cancel = False
你做這個技巧用於所有驗證控制事件,然後在的輸入事件中的驗證事件之前觸發,可以設置bClosingForm = true
然後觸發級聯事件,並轉到確認事件進行AND bFormClosing
,並會跳轉到else
是你有e.Cancel = false
並將停用驗證和允許您關閉所有控件驗證事件的表單。
記得設置爲false CausesValidation
=退出按鈕爲false。
你也可以將它放在鼠標下,甚至是ClosingForm事件,在驗證事件之前觸發的任何事件。好極了,它爲我工作,最後!
你可以做得更簡單。
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
If m.WParam.ToInt32 = &HF060 Then Me.AutoValidate = System.Windows.Forms.AutoValidate.Disable
MyBase.WndProc(m)
End Sub
感謝您的回答。 – 2014-05-24 15:24:24