解决方案 »

  1.   

    貌似,系统在响应 KeyPress 事件的时候,字符就已经输入到textbox里面了额。阻止从键盘输入键?那想不能键盘输入,你直接将 控件的 readonly 设置为 true,或者将enabled 设置为false,就行了额。
      

  2.   

    我查看了你的代码,并自己做了实验,你的代码并没有问题,也是可以起到效果的,你需要检查你的Textbox是否触发了 textBox3_KeyPress 这个事件,你可以加一个断点进行调试
      

  3.   

    http://bbs.csdn.net/topics/390203429
      

  4.   


    这些全是浮云
    想在keydown keypress来控制  想想就够了我如果用鼠标右键粘贴呢? 然后你是不是想禁止右键
      

  5.   

    什么情况,你的第一段代码是可以用的啊!你不会是直接把代码敲进去的吧?那样的话你需要注册事件,在InitializeComponent();函数下加上注册事件:textBox3 .KeyPress +=textBox3_KeyPress;
      

  6.   

    在控件的属性--事件中找到keypress,把事件绑定一下
      

  7.   

    要么就控制只能使用小键盘。
    要么就控制text
      

  8.   


    禁止输入非法内容(就是输入的时候不响应字符,用户或许会郁闷:明明按了某个键,但是文本框就是啥都没显示啊!什么况。。),个人觉得这并不是一个好的处理办法。
    我觉得应该使用表单验证,这样更好控制,而且用户体验更好。
    在change事件中使用验证(比如正则验证,然后使用tooltips提示错误),这样处理或者会好一点。
      

  9.   

    那换个思路,每次在textbox的textChanged事件中判断其text属性的最后一个字符是否合法,不合法的话textbox.Text=textbox.Text.SubString(0,textbox.Text.Length-1);
      

  10.   


      //写在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);
                    }
                }不是我写的,以前逛论坛看到,觉得有用就留了下来,试试行不