winform c# textbox 只能输入正整数
时间: 2024-12-19 18:21:38 浏览: 8
在WinForms C#中,如果你想限制TextBox控件只能输入正整数,你可以通过自定义验证、键盘事件处理或者使用第三方库来实现。这里提供一种简单的做法:
1. 自定义验证:
- 使用KeyPress事件,当用户按下某个键时检查是否是数字0到9,并且是否有小数点。如果不是,可以阻止键盘事件的默认行为。
```csharp
private void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsDigit(e.KeyChar) && e.KeyChar != '.')
{
e.Handled = true;
// 如果已经输入了小数点,清空小数部分
if (textBox.Text.Contains('.'))
textBox.Text = RemoveDecimal(textBox.Text);
}
}
private string RemoveDecimal(string value)
{
return value.TrimStart('0').TrimEnd('.');
}
```
2. 文本框文本改变后验证:
- 当TextBox内容改变时,检查其是否只包含正整数,如果不是则清除非正整数字符。
```csharp
private void textBox_TextChanged(object sender, EventArgs e)
{
var text = textBox.Text;
if (!int.TryParse(text, out int num) || num <= 0)
textBox.Text = string.Empty;
}
```
阅读全文