做一个需要在窗体上按下后,移动鼠标窗体会跟着的功能,本来还好好的,在测试时可以用,后来不知道为什么就不成了,实现这个功能用的三个事件,MoustDown,MouseUp,MouseMove,我测试了一下,就是在里面加上MessageBox.show()看看到底哪里出了错了,结果发现MouseDown事件没用了,其他两个事件都可以....我真是百思不解了,事件都加进去了,而且这个也没有改过大侠帮我看看,最有可能是哪里出了错来

解决方案 »

  1.   

    private bool IsDown = false;
    private Size size = new Size(0,0);
    private void pictureBox1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
    {
        this.IsDown = true;
        this.size.Width = e.X;
        this.size.Height = e.Y;
    }private void pictureBox1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
    {
        this.IsDown =false;
    }private void pictureBox1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
    {
        if (this.IsDown)
        {
    this.Left += e.X - this.size.Width;
    this.Top += e.Y - this.size.Height;
        }
    }
      

  2.   

    嗯,不是我的代码错误了,而是那个事件不起作用了,比如在MouseDown事件中,我只加了一个MessageBox.Show(),结果什么东西也没有....
      

  3.   

    你MessageBox.Show()后,pictureBox1_MouseUp就不触发了……
      

  4.   

    你这句什么时候能触发阿??
    我没看出来……
    if (this.IsDown)
    {
    this.Left += e.X - this.size.Width;
    this.Top += e.Y - this.size.Height;
    }
      

  5.   

    你看看事件和你的方法关联上没有?            this.button1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.button1_MouseDown);
    这句话有么?