发现MainForm_keyup根本无法知道松开的是ctrl键,有大神知道是怎么回事吗?

解决方案 »

  1.   

    if ((int)Control.ModifierKeys == (int)Keys.Control)//判断是否是ctrl
    {
       
    }
      

  2.   

    控件的_KeyUp 中
    这是Control+C的写法
    if (e.Control && e.KeyCode == Keys.C)
      

  3.   

    第一步:設置屬性 KeyPreview = True
    第二部:設置事件 KeyUp
    第三部:寫事件代碼
      

  4.   

    是不是 没判断是哪个键?
    Input.GetKeyUp(KeyCode.LeftControl)
    Input.GetKeyUp(KeyCode.RightControl)
      

  5.   

    悲摧的是e.Control=false,Control.ModifierKeys=None,想不明白到底怎么回事
      

  6.   

    keydown就可以判断ctrl按下,求解啊
      

  7.   

    测试了下,可以啊
    public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                this.KeyUp += new KeyEventHandler(Form1_KeyUp);
                
            }        void Form1_KeyUp(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.ControlKey)
                {
                    MessageBox.Show("");
                }
            }
        }
      

  8.   

    有这么一个属性(Control.ModifierKeys),只要在mousedown事件里面判断就行了,假如什么修饰键都没有按,那么这个属性返回NONE,所以只要在mousedown事件里面加入:
    if (Control.ModifierKeys == Keys.Control)
    {    
        //do something
    }
    这样做的话,假如在按下ctrl的同时,还按了其他键,则上面的判断为false,要使得只要有ctrl按下就为true,可以这样:
    if ((Control.ModifierKeys & Keys.Control) == Keys.Control)
    {    
        //do something
    }另外,是e.KeyCode == Keys.ControlKey (not Control). 看我四樓的回復。