请问一下,有什么简单的方法判断,当我点击鼠标左键时,是否同时按住了Ctrl键,要在OnMouseDown事件中判断,谢谢

解决方案 »

  1.   

    做一个全局变量
        private bool m_Ctrl = false;
            private void Form1_Load(object sender, EventArgs e)
            {                    
                this.KeyPreview = true;           
            } 
            private void Form1_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.ControlKey) m_Ctrl = true;
            }        
            private void Form1_KeyUp(object sender, KeyEventArgs e)
            {
                m_Ctrl = false;
            }
            private void Form1_MouseDown(object sender, MouseEventArgs e)
            {
                if (m_Ctrl == true)
                {
                    this.Text = e.Button.ToString();
                }
            }
    或则使用API GetKeyboardState也可以
      

  2.   

    private void Form1_MouseDown(object sender, MouseEventArgs e)
            {
                if (Control.ModifierKeys== Keys.Control)
                {
                    MessageBox.Show("你按了ctrl");
                }
            }
      

  3.   

     private void Form1_MouseDown(object sender, MouseEventArgs e)
            {
                if (Control.ModifierKeys== Keys.Control&&e.Button== MouseButtons.Left)
                {
                    MessageBox.Show("你按了ctrl+鼠标左键");
                }
            }
      

  4.   

    我现在把这个事件写在了一个类中,所有好象Control.ModifierKeys== Keys.Control这一步不行啊,有没有其他的好办法啊,谢谢了
      

  5.   


    忘说了,这个类没有继承Form类
      

  6.   

    没有继承form哪里来的OnMouseDown?你可以给类引用System.Windows.Form.dll
      

  7.   

     [DllImport("USER32.dll")]
            static extern short GetKeyState(int nVirtKey);
            const int VK_CONTROL = 0x11;           private void frmMain_MouseDown(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Left && ((GetKeyState(VK_CONTROL) & 0x8000)!=0))
                {
                    //你同时按下了Ctrl加左键
                    MessageBox.Show("CTRL+Left");            } 
            }