0

私の要件は、テキスト ボックスに 10 進数の値を入力することです。ユーザーが .dot を入力した場合、10 進数の 3 値を入力する必要があります。 .net winforms テキストボックスでこれを制限する方法。

decimal((1-9),3)

小数点の前は、次のような任意の小数値です。

本当のケース

123--- 1232.004--- 123123123123.555--- 3123123123--- .231---

偽のケース

123.--- 222.33--- 123.3--- 21312323.1232133--- .2--- .12313---

4

3 に答える 3

2

TextBox検証イベントをサブスクライブします。

private void TextBox_Validating(object sender, CancelEventArgs e)
{
    string Text = ((TextBox)sender).Text;        
    string[] Parts = Text.Split(new char[] { '.' });
    decimal Dummy;
    e.Cancel = !decimal.TryParse(Text, out Dummy) || 
        ((Parts.Length == 2) && (Parts[1].Length != 3));
}

または、テキストの検証などに正規表現を使用できます。ただし、主なアイデアは、テキストボックスの検証をキャンセルした場合、ユーザーはデフォルトでそれを離れることができないということです。AutoValidateプロパティも確認してください。

于 2010-07-20T12:49:26.273 に答える
1

いずれかのValidatingイベントを処理して をチェックする.だけです。

を使用IndexOfしてドットを検索し、文字列のインデックスの後に少なくとも 3 文字が含まれていることを確認してから、次の 3 文字を取り出して、それらがすべて数字であることを確認します。

于 2010-07-20T12:52:15.663 に答える
0

または、エントリを 2 つのテキスト ボックスに分割します。1 つはドットの前の数字用、もう 1 つはドットの後の 3 桁用です。

3 つのテキスト ボックスに SSN を入力するようなものです。

于 2010-07-21T21:36:35.750 に答える