えムナウ Blog

えムナウ の ありのまま

AILight Banner
AILight Blog

プロフィール

えムナウ Blog

目次

Blog 利用状況

記事分類

過去の記事

タグ

事は例外だけではない

第4回 トラブルは水際で防げ~入力時のチェックとエラー処理 - @IT

この記事の例外に関するところについては菊池さん・渋木さんがBlogを書いています。
例外やTryParse()に関してはその通りで私も同じ意見です。

うーん、どうなんだろう…
無闇に例外を使わないこと。

しかし、VisualStudioのコントロールを研究するものの立場としては、
Validatingイベントを使って入力チェックに別の意味で問題を提起したい。
「フォームの[×]ボタン・クリック時にはActiveControlは変わらない」とActiveControlをチェックしている。
しかし我々が通常推奨するのはFormのClosingイベントでe.Cancel = falseとする方法である。


こんな画面を作ってみればすぐわかる。
保存ボタンを押したときはActiveControlは保存ボタンに切り替わる。
保存メニューや保存ツールストリップボタンを押したときはActiveControlは変わらない。
つまりActiveControlをむやみに信じてはいけない。

Formを閉じるかどうかの判断を根本で解決するために、
FormのClosingイベントでe.Cancel = falseとする方を教えるべきだと思う。

投稿日時 : 2006年11月23日 14:21


コメントを追加

#  re: 事は例外だけではない 2006年11月23日 20:54 菊池

あー、書いてるうちにすれ違った。

うんうん、これもある。

自分が欲しい視点は背後にアーキテクチャがあって、何をどうするにしてもアーキテクチャの存在を逃れる事ができない題材だと思うんだけど、その視点がなく、結果付け焼刃に感じるのよね。

#  re: 事は例外だけではない 2006年11月23日 21:02 えムナウ

書き忘れていましたが、
.NET Framework version 2.0 では、
FormClosing イベントを使ってください。
大事なデータを損傷する恐れがあるとかの場合は、
CloseReason プロパティでフォームが閉じられようとしている理由を、
調べて対処することもできます。

今回の場合はCloseReasonをチェックする必要はないでしょう。
タイトル
名前
URL
コメント