当在BUTTON的click事件中添加以下代码 TextBox1.text=e.KeyCode.tostring();
当我按下a键时,文本框中便出了aA两个a如何过滤掉一个呢?如果写上if(e.keyvalue>=65 $$e.keyvlue<90)这句话的意思 
是限制范围在a-z中但好像不管用啊!

解决方案 »

  1.   

    button click事件里面有e.KeyCode?
      

  2.   

    写错了,是在textbox的keydown事件中写的
      

  3.   

    你能在button的click中添加TextBox1.text=e.KeyCode.tostring(); 这样的代码才奇怪呢?
    click事件的参数e中有KeyCode吗?这就是问题所在
      

  4.   

    TextBox1.Text = ChrW(e.KeyCode)
    or
    TextBox1.Text = Chr(e.KeyCode)
      

  5.   

    我在提问的时候写错了,是在,是在textbox的keydown事件中写的
      

  6.   

    换一种方式把,你说的这个基本不太可能实现,本身keydown事件中文本框要接受一个字符,然后你又给文本框赋一个值
    如果你非要这样做的话,可以考虑在KeyUP事件中赋值,也就是说在KeyDown中将e.Handle = true;,然后在keyup中在进行文本框的赋值操作,
    但是这样的话,你的backspace键就的特殊处理了。
    比较郁闷,这个需求太怪异了。
      

  7.   

    if(e.keyvalue>=65 && e.keyvlue <90)
    {
       e.KeyCode.tostring(); 
    }
      

  8.   

    你的需求真是怪异,
    这样在keydown中e.Handled = true;
    在keyup中处理你的赋值操作,
    但是这样的话,你的backspace键,等等其他的键怎么处理呀。
    换一种思路吧,不知道你要干什么?
      

  9.   

    我这个是跟据一个视频教程做的,目的就是设置快捷键,比如可以设置控制方块向左的键,就像在游戏中设置a,s,d,w 一样
      

  10.   

     怎么没人给看了呢?
    我觉的应该是if (e.KeyValue >=65 && e.KeyValue <= 90)因为是设定 65<e.keyvalue<90这个范围?可是设成这个范围不行,反而设成如下。倒是不会出现一个框内两个字符为什么呢? private void textBox1_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyValue <=65 && e.KeyValue >= 90)
                {
                    textBox1.Text = e.KeyCode.ToString();
                }
            }
    设成if (e.KeyValue <=65 && e.KeyValue >= 90)不是已经不在这个字符的范围了吗?
    奇怪!!!