C#textbox只能输入数字
时间: 2023-06-26 08:07:19 浏览: 194
你可以使用 C# 中的 KeyPress 事件和 Char.IsDigit 方法来实现只能输入数字的功能。
首先,在窗体载入时给 TextBox 绑定 KeyPress 事件,代码如下:
```csharp
private void Form1_Load(object sender, EventArgs e)
{
textBox1.KeyPress += new KeyPressEventHandler(textBox1_KeyPress);
}
```
然后,在事件处理方法中,判断按下的键是否为数字键,如果不是则取消输入。代码如下:
```csharp
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!Char.IsDigit(e.KeyChar) && e.KeyChar != (char)8)
{
e.Handled = true;
}
}
```
KeyChar 属性表示按下的字符键,Char.IsDigit 方法用于判断该字符是否为数字,8 表示退格键,如果按下的键既不是数字键也不是退格键,则将 Handled 属性设置为 true,表示取消输入。
这样就实现了在 C# 中只能输入数字的效果了。
相关问题
C# textbox 只能输入数字
您可以使用以下方法来限制文本框只能输入数字:
1. 使用KeyPress事件:
在文本框的KeyPress事件中,检查按下的键是否为数字键或者是删除键。如果不是数字键或删除键,则将事件标记为已处理,阻止非数字字符的输入。
示例代码:
```csharp
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
// 检查按下的键是否为数字键或删除键
if (!char.IsDigit(e.KeyChar) && e.KeyChar != '\b')
{
e.Handled = true; // 标记事件已处理,阻止非数字字符的输入
}
}
```
2. 使用TextChanged事件:
在文本框的TextChanged事件中,检查文本框中的每个字符,如果不是数字,则将其替换为空字符串。
示例代码:
```csharp
private void textBox1_TextChanged(object sender, EventArgs e)
{
string text = textBox1.Text;
string result = string.Empty;
foreach (char c in text)
{
if (char.IsDigit(c))
{
result += c;
}
}
textBox1.Text = result;
textBox1.SelectionStart = result.Length; // 设置光标位置为文本末尾
}
```
这两种方法都可以限制文本框只能输入数字。您可以根据需要选择适合您的情况的方法。
C#textbox只能输入字母和数字
在C#中,如果你想要限制TextBox控件只允许用户输入字母和数字,你可以通过设置`Validating`事件和自定义验证规则来实现。首先,在属性窗口中设置`AllowUserEdit`为`true`以允许编辑,并禁用`PasswordChar`以防显示密码。
然后,在代码中添加以下处理:
```csharp
private void textBox_Validating(object sender, CancelEventArgs e)
{
TextBox textBox = (TextBox)sender;
string input = textBox.Text;
// 使用正则表达式检查是否只包含字母和数字
if (!Regex.IsMatch(input, @"^[a-zA-Z0-9]*$"))
{
e.Cancel = true; // 如果输入不符合要求,则阻止提交
textBox.Select(0, textBox.Text.Length); // 选中文本,高亮错误部分
textBox.Focus(); // 将焦点返回到文本框,以便用户看到错误
MessageBox.Show("只允许输入字母和数字!"); // 显示错误提示
}
}
```
在这个例子中,`^` 和 `$` 分别表示字符串的开始和结束,`[a-zA-Z0-9]` 是匹配所有大小写字母和数字的字符集,`*` 表示可以任意次数地重复前面的字符。
阅读全文