1

text-box数字、空白、プラス記号のみを受け入れるを作成しようとしています。

現在、私KeyPressEventtextbox

if (!char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar) &&!char.IsWhiteSpace(e.KeyChar))
    {
                e.Handled = true;
    }

+サインも受けたい

アップデート

を処理しました!char.IsSymbol(e.KeyChar)=+

どんな助けでも!!!

ありがとう

4

4 に答える 4

1

「入力中」制御と検証制御を行うには、そのようなものを作成できます。

しかし、テキストボックスには多くのもの (1+++ +2 34+) がありますが、これはあまり意味がありません...

textBox.KeyDown += (sender, e) =>
                               {
                                   if (!(
                                       //"+
                                       e.KeyCode == Keys.Add || 
                                       //numeric
                                       (e.KeyCode >= Keys.NumPad0 && e.KeyCode <= Keys.NumPad9) || 
                                       //space
                                       e.KeyCode == Keys.Space))
                                   {
                                       e.Handled = true;
                                   }
                               };
textBox.Validating += (sender, eventArgs) =>
                                  {
                                      var regex = new Regex(@"[^0-9\+ ]+");
                                      textBox.Text = regex.Replace(textBox.Text, string.Empty);
                                  };
于 2012-06-01T15:45:33.437 に答える
0

追加した

var reg = new Regex(@"^\+?(\d[\d-. ]+)?(\([\d-. ]+\))?[\d-. ]+\d$");

正規表現として

于 2012-06-01T16:23:34.790 に答える
0

厳密に言えば、追加できます

     && !e.KeyChar == '+' 

キーボード入力に関する限りは機能するはずですが、数値入力のみを許可することが目標の場合、.net コントロール ライブラリには、このトリックを実行できる NumericUpDown コントロールも含まれています。

于 2012-06-01T15:41:33.770 に答える
0

これは私にとってはうまくいきます:

if (!(char.IsLetter(e.KeyChar) && (!char.IsControl(e.KeyChar) 
    && !char.IsDigit(e.KeyChar) && !(e.KeyChar == '.'))
{
    e.Handled = true;
}

typeerror の場合に Backspace を使用できるようにするため、char.IsControl を追加しました。

于 2020-02-15T16:10:18.273 に答える