WinFormsのテキストボックスコントロールのテキストを検証する方法は?
「13:55」のように、ユーザーが文字列を入力する必要があるコントロールがあります。この値が「XX:YY」よりも異なる場合は、MessageBoxを表示したいと思います。
どうやってするの?
asp.netでは作成がとても簡単でしたが、winformsに実装するにはどうすればよいですか?
質問する
5197 次
4 に答える
4
そもそも検証する必要がない場合は、 MaskedTextBoxをチェックしてください。
var l_control = new MaskedTextBox();
l_control.Mask = "00\:00";
最初の桁をオプションにしたい場合:
l_control.Mask = "90\:90";
それ以外の場合は、正規表現を使用できます。コロンで区切られた4桁は次のようになります@"^\d{2}:\d{2}$"
。(この@
記号は、C#が'\'をエスケープ文字として扱うことを防ぎます-正規表現に固有のものではありません。)
于 2012-10-12T20:07:46.273 に答える
1
http://windowsclient.net/learn/videos.aspxには、プロセス全体を説明する 3 つの検証ビデオがあります。
ただし、収集するデータによっては、Masked Textbox を使用する方が簡単な場合があります。
あなたがしていることについては、本当に安全で、2 つの NumericUpDown コントロールを使用でき、検証をまったく処理する必要はありません。
于 2012-10-12T20:09:58.287 に答える
0
C#正規表現を確認する必要があります
Match match = Regex.Match(input, "^\d\d:\d\d$"));
if (!match.Success) MessageBox.Show("Error");
于 2012-10-12T20:09:21.680 に答える
0
メッセージボックスをポップアップする代わりに、 ErrorProviderを使用することもできます。ErrorProvider クラスの例は msdn にあります。基本的に、検証済みイベントにサブスクライブします
this.nameTextBox1.Validated += nameTextBox1Validated;
次に、値が有効かどうかを確認します
private void nameTextBox1Validated(object sender, EventArgs e) {
if(isNameValid()) {
// clear error
nameErrorProvider.SetError(nameTextBox1, String.Empty);
}
else {
// set some helpful message
nameErrorProvider.SetError(nameTextBox1, "Invalid value.");
}
}
private bool isNameValid() {
// The logic for determining if a value is correct
return nameTextBox1.Text == "hello";
}
エラープロバイダーは次のように作成できます
ErrorProvider nameErrorProvider = new ErrorProvider();
nameErrorProvider.SetIconAlignment(nameTextBox1, ErrorIconAlignment.MiddleRight);
nameErrorProvider.SetIconPadding(nameTextBox1, 2);
nameErrorProvider.BlinkRate = 1000;
nameErrorProvider.BlinkStyle = ErrorBlinkStyle.AlwaysBlink;
于 2012-10-12T20:43:45.380 に答える