C#中winform控制textbox输入只能为数字的方法
程序员文章站
2023-12-13 22:13:52
本文实例讲述了c#中winform控制textbox输入只能为数字的方法。分享给大家供大家参考。具体实现方法如下:
添加keypress事件,控制键盘输入只能是自然数:...
本文实例讲述了c#中winform控制textbox输入只能为数字的方法。分享给大家供大家参考。具体实现方法如下:
添加keypress事件,控制键盘输入只能是自然数:
复制代码 代码如下:
/// <summary>
/// 控制键盘输入只能是自然数
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void textbox1_keypress(object sender, keypresseventargs e)
{
// 允许输入:数字、退格键(8)、全选(1)、复制(3)、粘贴(22)
if (!char.isdigit(e.keychar) && e.keychar != 8 &&
e.keychar != 1 && e.keychar != 3 && e.keychar != 22)
{
e.handled = true;
}
}
但是这样不能避免粘贴文字里含有非数字字符的情况,可以添加textchanged事件进行控制:
复制代码 代码如下:
/// <summary>
/// 粘贴时过滤不是数字的字符
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void textbox1_textchanged(object sender, eventargs e)
{
var reg = new regex("^[0-9]*$");
var str = textbox1.text.trim();
var sb = new stringbuilder();
if (!reg.ismatch(str))
{
for (int i = 0; i < str.length; i++)
{
if (reg.ismatch(str[i].tostring()))
{
sb.append(str[i].tostring());
}
}
textbox1.text = sb.tostring();
//定义输入焦点在最后一个字符
textbox1.selectionstart = textbox1.text.length;
}
}
希望本文所述对大家的c#程序设计有所帮助。