一人情シスのつぶやき

名古屋の中小企業で一人情シスをしている作者が、日々の業務で思うことをつぶやきます。

WindowsFormでイベントを駆使して入力チェック等を行う場合のポイント

  • すべてのイベントハンドラを一括で登録、削除する関数を作成する
  • すべてのイベントハンドラの最初で削除し、最後に再登録する
    • イベントの多重起動(Leaveイベント内で別ControlのFocusを実行して再度Leaveが実行される、等)を防ぐにはこれが確実
    • 関数のreturn部分が複数あって複雑な場合は、try-finallyのfinally内で再登録する
    • イベントハンドラから呼び出す関数内で削除,登録処理を行うと、その関数の呼ばれ方によって再登録が多重に行われてしまう可能性がある。関数を使う場合もイベントハンドラの中で直接一括削除、再登録を行う