这是我写的一个屏蔽键盘输入的,但回车键不能被屏蔽,很奇怪?当回车时执行的过程和别的键执行的过程都一样,怎么
richTextBox里面还是做了回车换行的动作呢?if(char.ToLower(e.KeyChar)<=127 &char.ToLower(e.KeyChar)>=0){e.Handled=true;}屏蔽粘贴的功能就不知道如何写了

解决方案 »

  1.   

    突然发现if(char.ToLower(e.KeyChar) <=127   &char.ToLower(e.KeyChar)> =0){e.Handled=true;} 不能蔽键中文输入!晕s
      

  2.   

    禁止中文输入的一个简单的方法:设置richTextBox的ImeMode属性为Disable即可。ImeMode是对于输入法的设置。键盘的事件响应有KeyDown,KeyPress,KeyUp,他们分别执行的顺序为KeyDown->KeyPress->KeyUp,其实我们按下一个键时,KeyDown和KeyPress是都要发生的,而且两个人看上去没有什么区别。但是其实两者还是有实质的区别的。
    例如在一个多行文本框里面输入字符,为什么我们没有定义一个键盘响应事件,但是键盘却响应了,把字符输入到了文本框呢?其实我觉得因为这个事件就是系统默认的一个消息响应,它就是KeyPress。如果你自己还给KeyPress定义了自己的响应的话,那么程序会先执行你定义的程序,然后完成系统要求的显示字符事件的响应过程,但是如果你在自己定义KeyPress事件如:
    private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)里面增加语句:e.Handled=true;
    那么系统要求的显示字符响应过程就不会被执行,原因就是这个语句的意思就是这个消息响应已经完成。但是如果你在KeyDown,KeyUp里面加这条语句,显示字符串等消息还是会发生,这说明系统的显示字符串和KeyDown,KeyUp是没有关系的,而对于回车和退格消息响应则是由KeyDown控制,增加那条语句则回车换行不会执行,退格响应也不会执行。
    综上:要屏蔽键盘上的一个字符的输入,可以在KeyPress里面进行增加语句,而要屏蔽回车和退格则可以在KeyDown里面进行增加语句。  //屏蔽粘贴功能
    private void insertPicRichtextBoxHistoryMessage_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
    {
    // if(e.Control && e.KeyCode==Keys.V) 
    e.Handled = true; 
    }
      

  3.   

    //屏蔽粘贴功能,但可以使用“Shift”和上下左右键
    private void insertPicRichtextBoxHistoryMessage_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
    {
    if(e.KeyCode!=Keys.Shift&e.KeyCode!=Keys.Up&e.KeyCode!=Keys.Down&e.KeyCode!=Keys.Left&e.KeyCode!=Keys.Right)
    {e.Handled=true;}
    }
      

  4.   

    想把richTextBox控件的所有键盘输入、粘贴的功能都给屏蔽
    直接设置ReadOnly=true就可以了
      

  5.   

    屏蔽的时候,不用设置e.Handled=true;你直接让它Return回去不就行了?
      

  6.   

    回车和粘贴应该是你设了true之后还是有别的处理的。
      

  7.   

    ReadOnly=true;或者在KeyPress事件里面写
    e.KeyChar = (char)Keys.None;就可以了,什么都可以屏蔽完.要想要几个漏空的,自己写个IF把