求助大神!c#的winform怎么禁止textBox输入非法字符?为什么用KeyPress不起作用? textboxc#禁止输入非法字符 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 貌似,系统在响应 KeyPress 事件的时候,字符就已经输入到textbox里面了额。阻止从键盘输入键?那想不能键盘输入,你直接将 控件的 readonly 设置为 true,或者将enabled 设置为false,就行了额。 我查看了你的代码,并自己做了实验,你的代码并没有问题,也是可以起到效果的,你需要检查你的Textbox是否触发了 textBox3_KeyPress 这个事件,你可以加一个断点进行调试 http://bbs.csdn.net/topics/390203429 这些全是浮云想在keydown keypress来控制 想想就够了我如果用鼠标右键粘贴呢? 然后你是不是想禁止右键 什么情况,你的第一段代码是可以用的啊!你不会是直接把代码敲进去的吧?那样的话你需要注册事件,在InitializeComponent();函数下加上注册事件:textBox3 .KeyPress +=textBox3_KeyPress; 在控件的属性--事件中找到keypress,把事件绑定一下 要么就控制只能使用小键盘。要么就控制text 禁止输入非法内容(就是输入的时候不响应字符,用户或许会郁闷:明明按了某个键,但是文本框就是啥都没显示啊!什么况。。),个人觉得这并不是一个好的处理办法。我觉得应该使用表单验证,这样更好控制,而且用户体验更好。在change事件中使用验证(比如正则验证,然后使用tooltips提示错误),这样处理或者会好一点。 那换个思路,每次在textbox的textChanged事件中判断其text属性的最后一个字符是否合法,不合法的话textbox.Text=textbox.Text.SubString(0,textbox.Text.Length-1); //写在keydown事件下 TextBox txt = sender as TextBox; //屏蔽非法按键 if ((e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) )//自己改建 { e.Handled = false; } else if (((e.Key >= Key.D0 && e.Key <= Key.D9) || e.Key == Key.OemPeriod) && e.KeyboardDevice.Modifiers != ModifierKeys.Shift) { e.Handled = false; } else { e.Handled = true; }//写在textchange事件下 TextBox textBox = sender as TextBox; TextChange[] change = new TextChange[e.Changes.Count]; e.Changes.CopyTo(change, 0); int offset = change[0].Offset; if (change[0].AddedLength > 0) { double num = 0; if (!Double.TryParse(textBox.Text, out num)) { textBox.Text = textBox.Text.Remove(offset, change[0].AddedLength); textBox.Select(offset, 0); } }不是我写的,以前逛论坛看到,觉得有用就留了下来,试试行不 怎么把有子父级关系的表查询一张表 关于程序最大存储空间问题 TypeBuilder 创建类如何实现继承接口 static 函数用法 POST 传输方式的文本编码问题 解释一个日语 ADO.NET 连接状态,请问在线的高手请进;;; 在线显示问题,紧急求教 C#调用java写的webservice,在GetResponse()取得对方返回值时报500内部服务器错误 高分请教,进销存数据库的设计思想 请教,怎样解决:warning MSB3283: 找不到类型库“Word”的包装程序集 用C#调用cygwin里面的ssh.exe
这些全是浮云
想在keydown keypress来控制 想想就够了我如果用鼠标右键粘贴呢? 然后你是不是想禁止右键
要么就控制text
禁止输入非法内容(就是输入的时候不响应字符,用户或许会郁闷:明明按了某个键,但是文本框就是啥都没显示啊!什么况。。),个人觉得这并不是一个好的处理办法。
我觉得应该使用表单验证,这样更好控制,而且用户体验更好。
在change事件中使用验证(比如正则验证,然后使用tooltips提示错误),这样处理或者会好一点。
//写在keydown事件下
TextBox txt = sender as TextBox; //屏蔽非法按键
if ((e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) )//自己改建
{
e.Handled = false;
}
else if (((e.Key >= Key.D0 && e.Key <= Key.D9) || e.Key == Key.OemPeriod) && e.KeyboardDevice.Modifiers != ModifierKeys.Shift)
{
e.Handled = false;
}
else
{
e.Handled = true;
}//写在textchange事件下 TextBox textBox = sender as TextBox;
TextChange[] change = new TextChange[e.Changes.Count];
e.Changes.CopyTo(change, 0); int offset = change[0].Offset;
if (change[0].AddedLength > 0)
{
double num = 0;
if (!Double.TryParse(textBox.Text, out num))
{
textBox.Text = textBox.Text.Remove(offset, change[0].AddedLength);
textBox.Select(offset, 0);
}
}不是我写的,以前逛论坛看到,觉得有用就留了下来,试试行不