下面这个代码,可以再拖动的时候,产生黑框。如果想花哨一些,可以在FormPaint中随便画了!
private int x,y,x1,y1;
private bool BeginDrag = false;private void button1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) {
         x = e.X;
y = e.Y;
BeginDrag = true;
}private void button1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) {
if(BeginDrag){
button1.Left += e.X - x;
button1.Top  += e.Y - y;
BeginDrag = false;
}
}private void button1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) {
if(BeginDrag){
x1 = button1.Left + e.X - x;
y1 = button1.Top + e.Y - y;
Invalidate();
}
}private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) {
if(BeginDrag){
System.Drawing.Pen myPen = new System.Drawing.Pen(System.Drawing.Color.Black);
e.Graphics.DrawRectangle(myPen,x1,y1,button1.Width,button1.Height);
}
}