フォームの×ボタンをクリックしフォームを閉じようとしたり、
CausesValidatin=Falseを設定しているコんトロールであっても、
そのコントロールの処理内でMe.Closeを記載していたりすると、
Validatingイベントが走ってしまいます。
フォームを閉じるときにValidatingイベントを走らせないようにするには
Public Class Form1 Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message) Const WM_CLOSE As Integer = &H10 Const WM_SYSCOMMAND As Integer = &H112 Const SC_CLOSE As Integer = &HF060 Select Case m.Msg Case WM_SYSCOMMAND If m.WParam.ToInt32() = SC_CLOSE Then 'Xボタン、コントロールメニューの「閉じる」、 'コントロールボックスのダブルクリック、 'Atl+F4などにより閉じられようとしている 'このときValidatingイベントを発生させない。 Me.AutoValidate = Windows.Forms.AutoValidate.Disable End If Case WM_CLOSE 'Application.Exit以外で閉じられようとしている 'このときValidatingイベントを発生させない。 Me.AutoValidate = Windows.Forms.AutoValidate.Disable End Select MyBase.WndProc(m) End Sub End Class
0 件のコメント:
コメントを投稿