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

在WinForm中,我们可以通过以下几种常用方法限制TextBox只能输入数字:

1. 使用KeyPress事件

在TextBox的KeyPress事件中,我们可以检查输入的字符是否为数字或控制字符,如果不是数字则取消输入。具体代码如下:

``` csharp

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)

{

if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))

{

e.Handled = true;

}

}

```

2. 使用TextChanged事件和正则表达式

在TextBox的TextChanged事件中,我们可以使用正则表达式匹配输入的文本是否为数字,如果不是数字则清空文本框。具体代码如下:

``` csharp

private void textBox1_TextChanged(object sender, EventArgs e)

{

Regex regex = new Regex("[^0-9]");

if (regex.IsMatch(textBox1.Text))

{

textBox1.Text = regex.Replace(textBox1.Text, "");

}

}

```

3. 使用MaskedTextBox控件

MaskedTextBox是一个特殊的TextBox控件,它可以使用掩码来限制输入的格式。我们可以设置掩码为"0"来表示只能输入数字,并设置ValidatingType属性为typeof(int)来验证输入的数字是否为整数。具体代码如下:

``` csharp

private void textBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)

{

if (!textBox1.MaskFull)

{

textBox1.BackColor = Color.Red;

}

else

{

textBox1.BackColor = SystemColors.Window;

}

}

private void textBox1_Validating(object sender, CancelEventArgs e)

{

int number;

if (!int.TryParse(textBox1.Text, out number))

{

MessageBox.Show("请输入一个整数");

e.Cancel = true;

}

}

```

4. 使用InputLanguageChanging事件

InputLanguageChanging事件在TextBox获得焦点并且输入法切换时触发,我们可以在该事件中将输入法设置为数字键盘,从而只能输入数字。具体代码如下:

``` csharp

private void textBox1_InputLanguageChanging(object sender, InputLanguageChangingEventArgs e)

{

InputLanguage currentLanguage = InputLanguage.CurrentInputLanguage;

if (!currentLanguage.Culture.EnglishName.StartsWith("en"))

{

foreach (InputLanguage lang in InputLanguage.InstalledInputLanguages)

{

if (lang.Culture.EnglishName.StartsWith("en"))

{

InputLanguage.CurrentInputLanguage = lang;

break;

}

}

}

}

```

这些方法可以帮助我们限制TextBox只能输入数字。应根据具体需求选择适合的方法来实现。

壹涵网络我们是一家专注于网站建设、企业营销、网站关键词排名、AI内容生成、新媒体营销和短视频营销等业务的公司。我们拥有一支优秀的团队,专门致力于为客户提供优质的服务。

我们致力于为客户提供一站式的互联网营销服务,帮助客户在激烈的市场竞争中获得更大的优势和发展机会!

点赞(26) 打赏

评论列表 共有 0 条评论

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