如何制作只允许整数值的文本框?

时间:2011-03-08 12:53:57

标签: c# wpf

我想在我的wpf应用程序中创建一个只接受整数值的文本框。如果有人在[a-z]之间键入字符,文本框将拒绝它。因此它不会显示在文本框中

5 个答案:

答案 0 :(得分:7)

您可以处理PreviewTextInput事件:

private void TextBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
  // Filter out non-digit text input
  foreach (char c in e.Text) 
    if (!Char.IsDigit(c)) 
    {
      e.Handled = true;
      break;
    }
}

答案 1 :(得分:1)

您可以添加TextChanged事件的句柄并查看输入的内容(每次都需要检查所有文本以防止从剪贴板粘贴字母)。

另请参阅在CodeProject上创建可屏蔽编辑框的一个很好的示例。

答案 2 :(得分:1)

在WPF中,您可以像这样处理KeyDown事件:

private void MyTextBox_KeyDown(object sender, KeyDownEventArgs e)
{
    e.Handled = true;
}

答案 3 :(得分:1)

这个简单的代码片段应该可以解决问题..您可能还想检查溢出(数字太大)

private void IntegerTextBox_TextChanged(object sender, EventArgs e)
{
    for (int i = 0; i < Text.Length; i++)
    {
        int c = Text[i];
        if (c < '0' || c > '9')
        {
           Text = Text.Remove(i, 1);
         }
    }
}

答案 4 :(得分:1)

将其绑定到Integer属性。 WPF将自行进行验证而不会有任何额外的麻烦。