就是说有一个textbox,然后我在它的keydown事件里面想做当ctrl+alt+a这3个键同时按下时,怎么样在textbox中显示“ctrl+alt+a”,用e.ctrl,e.alt,e.keycode,这能做出来2个快捷键的啊,3个的怎么写 啊
if(e.alt&&e.keycode=keys.A)
{
//yuju
}

解决方案 »

  1.   

    if(e.Alt && e.Control && e.KeyCode==Keys.A)
                {
                    textBox1.Text = "Ctrl+Alt+A";
                }
      

  2.   

    sorry,我没说清楚,问题是这样的,就是自定义快捷键,有ctrl+alt和另外一个键组成,这个键是有用户自己随便给的,不是事先确定的,这样怎么写
      

  3.   

    给你个网址
    http://www.cnblogs.com/wj/articles/929026.html
      

  4.   

    string str = "";
    if(e.Control) {
    str += "Ctrl+";
    }
    if(e.Alt) {
    str += "ALT+";
    }
    str += e.KeyCode.ToString();
    textBox1.Text = str;
      

  5.   

    //5楼那个代码需要改改,显然一个键一个键按是不合理的,而楼主 要的是三个键一起按:按下第一个键不放,再按第二、第三个键。
    //下面代码实现的功能跟QQ设置热键的效果差不多。
    private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
    {
    string strKeys="";
    if(e.Control)strKeys="CTRL+";
    if(e.Alt)strKeys="ALT+";
    if(e.Control&&e.Alt)strKeys="CTRL+ALT+";
    if(e.Control&&e.Alt&&char.IsLetter((char)e.KeyCode))strKeys="CTRL+ALT+"+e.KeyCode.ToString();
    this.textBox1.Text=strKeys;
    } private void textBox1_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
    {
    string str=this.textBox1.Text;
    if(str.Length>0&&!char.IsLetter(str[str.Length-1]))
    {
    this.textBox1.Text="";
    }
    }