2

私はC#ベースのWinFormsアプリケーションを持っており、その中には多くのメニューがあり、それぞれにユーザー入力用の複数のコントロールがあります。すべてのフォームには、ユーザーが入力したものを処理する[OK]ボタンがあります。

たとえば、ユーザーが[OK]ボタンを押したときに、これらすべてのコントロールの検証を行う必要があります。入力された文字列が数値かどうか、特定の長さかどうか、存在するかどうかなどを確認するには...

OKボタンごとに本格的なコードを書く代わりに、これを行うために利用できるC#機能はありますか?

4

3 に答える 3

0

正規表現を使用して検証を行うことができます ここにリンクがあります http://www.codeproject.com/Articles/9099/The-30-Minute-Regex-Tutorial

于 2012-09-26T11:33:02.057 に答える
0

これを行う 1 つの方法は、呼び出すValidateValidateChildren、[OK] ボタン クリック イベント ハンドラーから行うことです。次に、Validating検証する各コントロールのイベント ハンドラーを作成します。

User Input Validation に関するこの MSDN の記事を参照してください。

于 2012-09-26T11:55:06.557 に答える
0

この種のコードをフォーム デザインに入力したくない場合は、特定の方法で動作するように設計された独自のカスタム コントロールをいつでも作成できます。

したがって、たとえば、TextBox クラスから継承するクラスを作成し、このコントロールのイベントをオーバーライドして、目的どおりに実行することができます。

思いどおりに動作するように設計された独自のコントロールを作成することもできます。このようにすると、コントロールの動作を設定し、コントロールをフォームにドロップするため、フォーム デザインで入力を検証する必要がなくなります。

ユーザー入力には常に何らかの検証がありますが、フォームイベントで制限できます。これらのコントロールをどのようにカスタマイズする必要があるかによって異なります。

コントロールで特定のキー (RichTextBox の "Return キー" など) を制限したい場合や、クリップボードのコンテンツを貼り付けたものとして処理したい場合に、この種の機能が適しています。このコードはすべて、フォームではなくクラスで実行できます。

お役に立てれば。

于 2012-09-26T11:38:28.097 に答える