データベースに保存する前に、ユーザーがテキストボックスに何を書いているかを確認したい。これを行う最良の方法は何ですか?私はいつでもifやtry-catchブロックをいつでも書くことができると思いますが、もっと良い方法があるのではないかと思っていました。イベントの検証について読んだことがありますが、どのように使用できるかわかりません。
TextBoxを検証する方法は多数あります。これは、キーストロークごとに、後で、またはValidating
イベントで実行できます。
TextBoxがフォーカスを失うと、Validating
イベントが発生します。たとえば、ユーザーが他のコントロールをクリックしたとき。セットe.Cancel = true
TextBoxはフォーカスを失いません。
MSDN-Control.Validating Eventキーボード(TAB、SHIFT + TABなど)を使用してフォーカスを変更するとき、SelectまたはSelectNextControlメソッド、またはContainerControl.ActiveControlプロパティを現在のフォームに設定することにより、フォーカスイベントは次の順序で発生します
入る
GotFocus
去る
検証中
検証済み
LostFocus
マウスを使用するか、Focusメソッドを呼び出してフォーカスを変更すると、フォーカスイベントは次の順序で発生します。
入る
GotFocus
LostFocus
去る
検証中
検証済み
private void textBox1_Validating(object sender, CancelEventArgs e)
{
if (textBox1.Text != "something")
e.Cancel = true;
}
ErrorProvider
を使用して、TextBoxが無効であることを視覚化できます。チェックアウト WindowsフォームおよびC#でエラープロバイダーコントロールを使用
WinFormsでは、ErrorProviderをValidating
イベントと組み合わせて使用して、ユーザー入力の検証を処理できます。 Validating
イベントは検証を実行するためのフックを提供し、ErrorProviderはエラー条件に関するフィードバックをユーザーに提供するためのNice一貫したアプローチを提供します。
http://msdn.Microsoft.com/en-us/library/system.windows.forms.errorprovider.aspx