C#的WinForm中可以使用多种方法来限制TextBox只能输入数字,下面将介绍一些常用的方法。
方法一:使用KeyPress事件
在TextBox的KeyPress事件中判断输入的字符是否为数字,如果不是数字,则取消事件。代码如下:
```csharp
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsDigit(e.KeyChar) && e.KeyChar != 8) // 允许输入退格键
{
e.Handled = true; // 取消事件
}
}
```
方法二:使用TextChanged事件
在TextBox的TextChanged事件中判断文本框中的内容是否为数字,如果不是数字,则清空文本框。代码如下:
```csharp
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (!int.TryParse(textBox1.Text, out int num))
{
textBox1.Text = "";
}
}
```
方法三:使用正则表达式
使用正则表达式来判断输入的内容是否为数字。代码如下:
```csharp
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
Regex regex = new Regex("[^0-9]");
if (regex.IsMatch(e.KeyChar.ToString()) && e.KeyChar != 8) // 允许输入退格键
{
e.Handled = true; // 取消事件
}
}
```
方法四:使用MaskedTextBox控件
使用MaskedTextBox控件来限制只能输入数字。在设计窗口中拖入一个MaskedTextBox控件,并设置Mask属性为"9"。代码如下:
```csharp
private void maskedTextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 8) // 允许输入退格键
return;
MaskedTextBox maskedTextBox = sender as MaskedTextBox;
int selectionStart = maskedTextBox.SelectionStart;
int selectionLength = maskedTextBox.SelectionLength;
string text = maskedTextBox.Text;
string newText = text.Substring(0, selectionStart) + e.KeyChar + text.Substring(selectionStart + selectionLength);
int result;
if (!int.TryParse(newText, out result))
{
e.Handled = true; // 取消事件
}
}
```
以上是几种常用的方法来限制TextBox只能输入数字的实现方式。你可以根据具体需求选择适合的方法来使用。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/
发表评论 取消回复