C#textbox完全防止非数字内容输入怎么写
时间: 2023-08-02 16:24:26 浏览: 173
C#中winform控制textbox输入只能为数字的方法
要完全防止非数字内容输入,你可以在 `TextChanged` 事件中使用正则表达式来检查文本框输入的内容是否为数字,并在非数字情况下将文本框的内容重置为之前的值。以下是一段示例代码:
```csharp
private void textBox1_TextChanged(object sender, EventArgs e)
{
string text = textBox1.Text;
if (!Regex.IsMatch(text, "^\\d*$"))
{
textBox1.Text = text.Remove(text.Length - 1);
textBox1.SelectionStart = textBox1.Text.Length;
}
}
```
在这个示例中,`textBox1` 是你想要限制输入的文本框。当文本框的内容发生变化时,`textBox1_TextChanged` 事件将被触发。在事件处理程序中,我们使用正则表达式 `^\d*$` 来检查文本框输入的内容是否为数字。如果输入的内容不是数字,我们将使用 `text.Remove(text.Length - 1)` 方法将最后一个字符从文本框中删除,并使用 `textBox1.SelectionStart = textBox1.Text.Length` 将光标移到文本框的末尾。
注意,这种方法将完全防止非数字内容输入,包括手动输入和粘贴。但是,如果你想允许负数或小数,需要对正则表达式进行修改。例如,如果你想允许小数,可以使用正则表达式 `^\d*\.?\d*$`。
阅读全文