using System.Windows.Forms;
using System.Drawing;
using System;
public class foo : Form {
Point initial_control_location;
Point initial_mouse_position;
void b_mousemove (object sender, MouseEventArgs e)
{
Button b = (Button)sender;
if (!b.Capture) return;
b.Location = new Point (initial_control_location.X + MousePosition.X - initial_mouse_position.X,
initial_control_location.Y + MousePosition.Y - initial_mouse_position.Y);
}
void b_mousedown (object sender, MouseEventArgs e)
{
initial_control_location = ((Button)sender).Location;
initial_mouse_position = MousePosition;
}
public foo () {
Button b = new Button ();
b.Location = new Point (15, 15);
b.Size = new Size (150, 100);
Controls.Add (b);
Label l = new Label ();
l.Text = "hi there";
l.Location = new Point (20, 20);
l.Size = new Size (100, 20);
b.Controls.Add (l);
b.MouseDown += new MouseEventHandler (b_mousedown);
b.MouseMove += new MouseEventHandler (b_mousemove);
Label l2 = new Label ();
l2.Text = "mouse over me after clicking on the button";
l2.Location = new Point (20, 150);
l2.Size = new Size (100, 50);
Controls.Add (l2);
}
public static void Main (string[] args) {
foo f = new foo ();
Application.Run (f);
}
}