C -WinForm-TextBox中只能输入数字的几种常用方法(C )

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/

点赞(117) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部