私の問題はTextBox、Leaveイベントで a を検証し、これTextBoxに何かがあることを確認することです。this のテキストがTextBox同じでゼロの場合は aMessageBoxが表示されますが、フォームが閉じていてフォーカスが thisTextBoxにある場合は、 には何もないMessageBoxため、が表示されます。TextBox
Leaveフォームが閉じているときにイベントで検証を回避するにはどうすればよいですか?
フォームのメソッドをオーバーライドOnFormClosingし、フォームが閉じていることを知らせるフラグを設定する必要があります。次に、検証するときに、最初にそのフラグを確認します。
を呼び出す前に、必ずフラグを設定してくださいbase。
protected override void OnFormClosing(FormClosingEventArgs e)
{
_isClosing = true;
base.OnFormClosing(e);
}
これを実現するには、「leave」イベントの代わりにテキストボックスの「validated」イベントを使用します。
これにより、フォームが閉じる前にコードが実行され、必要なものが正確に達成されるようになります。