c#文本框只能输入数字和小数点
时间: 2024-10-11 15:05:32 浏览: 44
在 C# 中,你可以使用 `System.Windows.Forms.TextBox` 控件,并通过设置其 `Validating` 和 `KeyPress` 事件来限制用户输入的内容。为了只允许输入数字和小数点,可以采用以下步骤:
1. 首先,在窗体加载或文本框初始化时,添加验证规则:
```csharp
textBox1.Validating += TextBox1_Validating;
```
2. 实现 `TextBox1_Validating` 事件处理程序,检查输入是否合法:
```csharp
private void TextBox1_Validating(object sender, CancelEventArgs e)
{
if (!Regex.IsMatch(textBox1.Text, @"^-?\d*\.?\d*$")) // 正则表达式匹配整数和小数
{
e.Cancel = true; // 如果输入无效,阻止默认的验证过程并提示错误
MessageBox.Show("请输入数字或小数");
}
}
```
3. 然后,处理 `KeyPress` 事件以防止用户输入非法字符:
```csharp
textBox1.KeyPress += TextBox1_KeyPress;
private void TextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
var key = e.KeyChar;
if (!char.IsDigit(key) && key != '.' && key != (char)Keys.Back || (key == '.' && !e.Handled)) // 只允许数字、小数点或退格键
{
e.Handled = true;
e.KeyChar = '\0'; // 清除键盘上按下的字符
}
}
```
阅读全文