求 C# 文本框 限制只能输入半角数字解决方案 C# winform 文本框 只允许输入 半角的数字 如何才能屏蔽 全角输入还有半角的 汉字和字母 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 直接添加个keypress事件判断输入的ascii是不是在48~57之间。 之前做过,没有太好的解决办法。1 使用TextChanged事件,输入全角0到9,a到Z时,修改为半角。2 保存是修改。3 自己定义输入法。 private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { byte[] array = System.Text.Encoding.Default.GetBytes(e.KeyChar.ToString()); if (!char.IsDigit(e.KeyChar) || array.LongLength == 2) e.Handled = true; if (e.KeyChar == '\b' || e.KeyChar == '.') e.Handled = false; } 文本框有个属性,可以限制只能输入半角,那个属性就不记得了 /// <summary> /// 限制输入数字以外的字符且为半角 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void txtRuYuanCount_KeyPress(object sender, KeyPressEventArgs e) { if (((int)e.KeyChar < 48 || (int)e.KeyChar > 57) && e.KeyChar != 8) { e.Handled = true; } byte[] array = System.Text.Encoding.Default.GetBytes(e.KeyChar.ToString()); if (!char.IsDigit(e.KeyChar)|| array.LongLength==2) e.Handled = true; if (e.KeyChar == '\b' || e.KeyChar == '.') e.Handled = false; }第二种,,转换///全角转半角public string NarrowToSmall(string inputString){ char[] c = inputString.ToCharArray(); for (int i = 0; i < c.Length; i++) { byte[] b = System.Text.Encoding.Unicode.GetBytes(c,i,1); if (b.Length == 2) { if (b[1] == 255) { b[0] = (byte)(b[0] + 32); b[1] = 0; c[i] = System.Text.Encoding.Unicode.GetChars(b)[0]; } } } for(int i=0;i<c.Length;i++) { if(47<c[i]<58||c[i]==46) else { MessageBox.Show("有非数字"); return null; } } string returnString = new string(c); return returnString; // 返回半角字符 } 事件处理 在线等待.... 请大家指点一个通用一点的开发方法 据说是月薪4000的面试题,可我不会做。 long类型 问题 一个朋友正在考试中,有两个题目,10点前给出答案 1个100分啊 呵呵 我在代码里面怎么每次获取由存储过程output参数返回来的值都是空的?郁闷 c#使用水晶报表的两个怪问题,各位帮帮忙,谢谢! 关于WMI的小问题!急啊! C#和wxSQLite3 C# wpf问题,win7上运行没有界面,win10上启动正常 串口类的发送问题! C# winform 绝对路径转换为虚拟路径??
1 使用TextChanged事件,输入全角0到9,a到Z时,修改为半角。
2 保存是修改。
3 自己定义输入法。
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
byte[] array = System.Text.Encoding.Default.GetBytes(e.KeyChar.ToString());
if (!char.IsDigit(e.KeyChar) || array.LongLength == 2)
e.Handled = true;
if (e.KeyChar == '\b' || e.KeyChar == '.')
e.Handled = false;
}
/// <summary>
/// 限制输入数字以外的字符且为半角
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void txtRuYuanCount_KeyPress(object sender, KeyPressEventArgs e)
{
if (((int)e.KeyChar < 48 || (int)e.KeyChar > 57) && e.KeyChar != 8)
{
e.Handled = true;
}
byte[] array = System.Text.Encoding.Default.GetBytes(e.KeyChar.ToString());
if (!char.IsDigit(e.KeyChar)|| array.LongLength==2) e.Handled = true;
if (e.KeyChar == '\b' || e.KeyChar == '.') e.Handled = false; }第二种,,转换
///全角转半角
public string NarrowToSmall(string inputString)
{
char[] c = inputString.ToCharArray();
for (int i = 0; i < c.Length; i++)
{
byte[] b = System.Text.Encoding.Unicode.GetBytes(c,i,1);
if (b.Length == 2)
{
if (b[1] == 255)
{
b[0] = (byte)(b[0] + 32);
b[1] = 0;
c[i] = System.Text.Encoding.Unicode.GetChars(b)[0];
}
}
}
for(int i=0;i<c.Length;i++)
{
if(47<c[i]<58||c[i]==46)
else
{
MessageBox.Show("有非数字");
return null;
}
}
string returnString = new string(c);
return returnString; // 返回半角字符
}