解决方案 »
- 昏倒啊!三层架构到底怎么弄啊,教程讲的都是不清不楚的!高手请速来。
- 滚动条问题
- 【散分】接口应用讨论
- 做个调查,看看各位的工作时间段?
- 记录某个按钮被按下了多少次的问题
- C#在textbox中退格键消除回车时如何让textbox的长度减一而不是减两个字符
- 三层开发中如何绑定Lable等控件
- 在C#中如何把ComboBox组合框控件设为只读,即不能让用户输入别的数据.
- sql2000服务器远程连接的问题。
- 小弟请教一个简单的问题
- 困扰我几天了,System.Collections.Generic.KeyNotFoundException: 给定关键字不在字典中。
- 新手求教Js与C#之间的数据传递?
return !regex.IsMatch(input);
当然如果还想禁止输入,可以先将判断通过的内容保存到string,判断里面有非法字符的时候,用保存的string重新给文本框赋值
当然还要重新给定光标的位置
如果是用鼠标复制粘贴上去,你这个事件根本不执行
这样可以杜绝CTRL+V复制过来的不符合要求的内容
我又试了下用TextChanged事件写,可是因为取不到KeyChar只能分辨汉字规则,无法输入退格和删除键怎么办?用keypress事件吧,加上if (IsChineseCh(textBox1.Text) == false)就没法判断了,刚输一个拼音字母就弹出msg,这可怎么办求修改?(只输入汉字和退格和删除,输错时显示个msg“输入汉字”点击确定,向前删除一个字符(取消内容))
我改后的源码:
public static bool IsChineseCh(string input) //正则表达式 汉字规则
{
Regex regex = new Regex("^[\u4e00-\u9fa5]+$");
return regex.IsMatch(input);
}private void textBox1_TextChanged(object sender, EventArgs e)
{
//此为只能输入汉字
if (IsChineseCh(textBox1.Text) == false) //此为退格键可以输入
{
MessageBox.Show("你输入的不是汉字");
}
}
怎么重写求思路?假如些什么?求想法
{
//定义临时存储记录文本变量
string temp;
temp = textBox1.Text;
for (int i = textBox1.SelectionStart;i<=textBox1.text.Length ;i++ ) //定义i为起始位置,寻找字符始终位置
if (IsChineseCh(textBox1.Text) == false)
/先弹出MSG提示
MessageBox.Show("你输入的不是汉字");
//然后去掉最后一个字符,设置SelectionStart属性让textbox获得焦点
string strNew = this.textBox1.Text.Substring(0, this.textBox1.Text.Length - 1);
this.textBox1.Text = strNew;
this.textBox1.SelectionStart = this.textBox1.Text.Length;
this.textBox1.Focus();
}
怎么重写求思路?假如些什么?求想法
调试失败,程序是可以运行,但不管输什么都弹出MSG,得点2、3次才能取消,而且接着程序卡死退出调试。这咋办?
要定义成全局变量啊,不要放到函数里去定义
你这样定义,每次执行函数,它都重新变成null了而且你要先比较,再赋值啊,不要每次上来就把文本框的值赋值给它了
http://www.cnblogs.com/xiaofengfeng/p/3488574.html