如果控件的enable属性为false,怎么才能触发mousemove事件
我想实现即使控件不可用,当鼠标移到上面的时候,也能在状态栏上显示信息,是不是应该触发
mousemove事件,但当控件不可用时,即控件的enable属性为false,是不能触发事件的,不知道
有什么办法能实现这个功能。

解决方案 »

  1.   

    如果控件enable属性为false,是不会触发任何事件的。
    有一种方法,就是在控件下面放一个和控件大小一样的Panel,触发它的mousemove事件就行了
     private void panel1_MouseMove(object sender, MouseEventArgs e)
            {
                if(button3.Enabled==false)
                    MessageBox.Show("123");
            }
      

  2.   

    好说阿Button b = new Button();
    b.Enabled = false;
    b.MouseMove = newSystem.Windows.Forms. MouseEventHandler(b_MouseMove);b.MouseMove.Invoke(b,new System.Windows.Forms.MouseEventArgs(MouseButtons.Left,1,0,0,0));
    void b_MouseMove (object sender, System.Windows.Forms.MouseEventArgs e)
    {
       throw new  Exception[/color[color=#993366]]("The method or operation is not implemented.");
    }
      

  3.   

    如1楼所说:控件Enable设置为False后,控件的容器可以捕获鼠标事件private void Form1_MouseMove(object sender, MouseEventArgs e)
    {
        foreach (Control control in Controls)
        {
            if (!control.Enabled)
            {
                if (control.Bounds.Contains(e.Location))
                {
                    Text = control.Name + e.Location.ToString();
                }
            }
        }
    }