private void button1_MouseDown(object sender, MouseEventArgs e)
        {
            button1.DoDragDrop(sender, DragDropEffects.Copy);
        }
但是鼠标松开,或复制到目标窗体后,该按钮仍处于被按下状态。怎样恢复呢?

解决方案 »

  1.   

    发个windows mouse up消息到按钮上试试呢
      

  2.   

      我在一个winform里加了按钮和一个listbox,然后加了如下的三个事件处理,拖动了按钮以后,按钮没有保持被按下状态啊
         private void button1_MouseDown(object sender, MouseEventArgs e)
            {
                button1.DoDragDrop(sender, DragDropEffects.Copy);
            }        private void listBox1_DragDrop(object sender, DragEventArgs e)
            {
                Button b = (Button)e.Data.GetData(typeof(Button));
                MessageBox.Show(b.Text);
            }        private void listBox1_DragEnter(object sender, DragEventArgs e)
            {
                e.Effect = e.AllowedEffect;
            }
      

  3.   

    那奇怪了,我这里把button的样式换成flat什么的也都没事,拖过去后button只是选中状态,而不是按下状态,是不是你的自定义的样式的问题呢?