数字のみを許可するように、Winフォームのテキストボックスにマスクを配置するにはどうすればよいですか?そして、それが別のマスクデータ、電話のzipなどでどのように機能するか。
Visual Studio 2008 C#を使用しています
ありがとう。
MaskedTextBoxコントロールを使用できます
http://msdn.microsoft.com/en-us/library/system.windows.forms.maskedtextbox.aspx
許可されていない入力を防止するか、続行する前に入力を検証しますか?
前者は、ユーザーがキーを押したときに混乱する可能性がありますが、何も起こりません。通常は、キーを押した状態を表示することをお勧めしますが、入力が現在無効であるという警告を表示します。たとえば、電子メールアドレスの正規表現をマスクするように設定することもおそらく非常に複雑です。
ErrorProviderを見て、ユーザーが必要なものを入力できるようにしますが、入力時に警告を表示します。
数字のみを許可するテキストボックスの最初の提案については、NumericUpDownも検討することをお勧めします。
ユーザーのキー押下イベントを制御して、不要な文字を許可しないことで入力をマスクします。
小数の数値のみを許可するには:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
// allows 0-9, backspace, and decimal
if (((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != 46))
{
e.Handled = true;
return;
}
// checks to make sure only 1 decimal is allowed
if (e.KeyChar == 46)
{
if ((sender as TextBox).Text.IndexOf(e.KeyChar) != -1)
e.Handled = true;
}
}
電話番号の値のみを許可するには:
private void txtPhone_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar >= '0' && e.KeyChar <= '9') return;
if (e.KeyChar == '+' || e.KeyChar == '-') return;
if (e.KeyChar == 8) return;
e.Handled = true;
}
上記のように、MaskedTextBoxを使用します。
ErrorProviderを使用することも価値があります。
マスクテキストボックスを使用して、MasktextboxId.Maskを割り当てます。
テキストボックスを使用する場合は、正規表現を作成する必要があります