要使WinForm文本框只能输入数字,可以使用以下方法之一:
1. 使用KeyPress事件:
在文本框的KeyPress事件中,检查按下的键是否为数字键或其他允许的键,如果不是,则取消该键的输入。
```csharp
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
{
e.Handled = true;
}
}
```
2. 使用TextChanged事件和正则表达式:
在文本框的TextChanged事件中,使用正则表达式来检查文本框中的内容是否为数字,如果不是,则清除非数字字符。
```csharp
private void textBox1_TextChanged(object sender, EventArgs e)
{
textBox1.Text = Regex.Replace(textBox1.Text, "[^0-9]", "");
}
```
3. 使用掩码输入:
使用MaskedTextBox控件代替普通的TextBox控件,然后设置掩码为数字的格式(例如:0-9)。
```csharp
maskedTextBox1.Mask = "0-9999";
```
无论哪种方法,都可以限制文本框只能输入数字。