1

ボタンを押してアクションを実行し(メッセージボックスを表示するなど)、マスクされたテキストボックスのテキストが数字ではない場合、次のようなことを行うようにする方法を理解しようとしています。 TextBox またはそのようなものに数字があります。私はそれを理解できないようです。

私はこれを使用しようとしました:

if (!System.Text.RegularExpressions.Regex.IsMatch(binTxtbx.Text, @"0-9"))
            e.Handled = true;

しかし、それを使用すると、テキストが maskedtextbox に入れられません。

誰かが私と同じ質問をしたかどうか知っているなら、教えてください.

4

3 に答える 3

3

maskedTextBox の使用を気にせず、アンダースコアが気に入らない場合 (コメントで述べたように)、PromptChar を空白に変更するだけです。

これは、MaskedTextBox プロパティのデザイン ビュー、または次のようなコードで行うことができます。

myMaskedTextBox.PromptChar = ' ';


編集:

別の方法として (maskedTextBox を使用したくない場合)、次のように KeyDown イベントを EventHandler に接続できます。

    private void numericComboBox_KeyDown(object sender, KeyEventArgs e)
    {
        try
        {
            e.SuppressKeyPress = false;

            // Determine whether the keystroke is a number from the top of the keyboard.
            if (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9)
            {
                // Determine whether the keystroke is a number from the keypad.
                if (e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9)
                {
                    // Determine whether the keystroke is a backspace or arrow key
                    if ((e.KeyCode != Keys.Back) && (e.KeyCode != Keys.Up) && (e.KeyCode != Keys.Right) && (e.KeyCode != Keys.Down) && (e.KeyCode != Keys.Left))
                    {
                        // A non-numerical keystroke was pressed.
                        // Set the flag to true and evaluate in KeyPress event.
                        e.SuppressKeyPress = true;
                    }
                }
            }
        }
        catch (Exception ex)
        {
            //Handle any exception here...
        }
    }
于 2013-01-22T21:05:52.160 に答える
1

[0-9]式は中括弧で表す必要があります。

完全なコード:

!System.Text.RegularExpressions.Regex.IsMatch(binTxtbx.Text, "^[0-9]*$")
于 2013-01-19T02:07:07.687 に答える
1

多分あなたは使うことができます

if (binTxtbx.Text.Any(c => char.IsNumber(c)))
{
   // found a number in the string
}

また

if (binTxtbx.Text.All(c => char.IsNumber(c)))
{
    // the string is a number
}
于 2013-01-19T04:25:56.430 に答える