You have to subscribe to MouseMove
event of that picture box and call your method in it.
// in Form1.cs
private void PictureBox1_MouseMove(object sender, MouseEventArgs e)
{
OnMouseMove(e);
}
Or you can override form's CreateControlsInstance
method to return custom control collection which will subscribe to every child control's MouseMove
event
// in Form1.cs
protected override void OnMouseMove(MouseEventArgs e)
{
base.OnMouseMove(e);
Point p = Cursor.Position;
label1.Text = "x= " + p.X.ToString();
label2.Text = "y= " + p.Y.ToString();
}
class Form1ControlCollection : ControlCollection
{
Form1 owner;
internal Form1ControlCollection(Form1 owner) : base(owner)
{
this.owner = owner;
}
public override void Add(Control value)
{
base.Add(value);
value.MouseMove += Value_MouseMove;
}
private void Value_MouseMove(object sender, MouseEventArgs e)
{
owner.OnMouseMove(e);
}
}
protected override Control.ControlCollection CreateControlsInstance()
{
return new Form1ControlCollection(this);
}
Add this snippet into your form