比如如果同时按了 Ctrl+Enter ,代码里如何处理才知道是按了这两个键?知道的告诉下。

解决方案 »

  1.   

    用KeyDown事件,参数KeyEventArgs中 e.Control表示是否按下Ctrl键,还有e.KeyValue或e.KeyCode就是按下的键值了。不明白看看MSDN。
      

  2.   

    回  panda2fw2(我爱Monkey):
    那应该是
            private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
            {
                if(e.Control)
                {
                    MessageBox.Show("你按了Ctrl键!");
                }        }我在窗体上按了Ctrl键,结果没有任何反映,为什么呢??e.Control已经代表着Ctrl键了。。应该不要再加KeyCode判断了吧?
      

  3.   

    其他键都可以获取。。Ctrl+A,...Shift+A,.....为什么Tab键我无法获取??
      

  4.   

    private void textBox2_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
            {
                if(e.Shift && e.KeyCode==Keys.Tab)
                {
                    MessageBox.Show("textBox2_KeyDown你按了shift,tab键!");
                }
            }
    为什么Tab键我无法获取??????一按焦点就自动跑了。。如何控制啊??
      

  5.   

    回 panda2fw2(我爱Monkey) (:
    试过。仍然无效。。已经pm你了。。
      

  6.   

    把form上的控件的tabstop设置为false就可以了。
      

  7.   

    第三次回 panda2fw2(我爱Monkey) :
    还是不行!我已经设置了KeyPreview和TabStop,可是问题依然存在!直接点吧!如果我按了shift和tab键,你应该用代码如何处理能提醒用户你按了shift和tab键!
      

  8.   

    protected override bool ProcessTabKey(bool forward)
    {
    MessageBox.Show("TAB!");
    return base.ProcessTabKey (forward);
    }
      

  9.   

    protected override bool ProcessTabKey(bool forward)
    {
    if(Control.ModifierKeys == Keys.Shift)
    MessageBox.Show("SHIFT & TAB!");
    return base.ProcessTabKey (forward);
    }
      

  10.   

    非常感谢panda2fw2(我爱Monkey) 和Sunmast(速马/Maybe I'm Amazed)