お仕事で使えそうな便利ツールを作っていて、.NETのエラープロパイダを使ってみる。これ便利ですね(何を今更)。
private void textControl_validate(object sender, CancelEventArgs e) { if(textControl.Text == "") { e.Cancel = true; errorProvider1.SetError(textControl, "空白です。なんか書いて"); } } private void textControl_validated(object sender, System.EventArgs e) { errorProvider1.SetError(textControl, ""); } private void btnOK_Click(object sender, EventArgs e) { //終了処理 }
ええ、実はこのエラープロパイダのこと知らなくて、OKボタンのclickイベントでテキストコントロールが空の時、どうやってダイアログの終了をキャンセルするのか、10分くらい悩んだのですorz。頭がまだWindows SDKなんで…。
ただ、あの注意アイコンだと、ちょっと見づらいというか、わかりにくいという人がいるかもしれないので、たとえばコントロールの背景色を変えて!という人はいるかもしれない(私がやっているフレームワークではそうしています)。これも色の識別に難がある方にはわかりづらいので、その辺調整しないといけないですけどね。