erstellte Grafik mit Mouse beweglich machen


Ich habe ein Problem mit meiner erstellten Grafik.
Ich habe ein einfaches rechteckiges Steuerelement erstellt und will dieses mit einem Mouse-Event auf und ab bewegen können, dieses soll gleichzeitig aber nur in einem bestimmten Rahmen beweglich sein. Habe aber keine Ahnung, wie man hier am besten vorgeht.

Vielleicht hat ja schonmal jemand so etwas ähnliches programmiert und kann mir helfen!?

Danke!
MfG MC
 

X509

Grünschnabel
Hi!

Hier mal ein rudimentärer Beispielcode um eine PictureBox mit der Maus zu bewegen. Die Grenzen innerhalb der Form kannst du dann selbst abstecken.

Code:
private bool m_fPressed = false;
private System.Drawing.Point m_Point = new System.Drawing.Point(0,0);

private void pictureBox1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
	if(e.Button == MouseButtons.Left)
	{
		this.m_fPressed = true;
		this.m_Point.X = e.X;
		this.m_Point.Y = e.Y;
	}
}

private void pictureBox1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
	this.m_fPressed = false;
}

private void pictureBox1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
	if(this.m_fPressed)
	{
		System.Drawing.Point l_Point = this.PointToClient(Form1.MousePosition);
		this.pictureBox1.Top = l_Point.Y - m_Point.Y; 
		this.pictureBox1.Left = l_Point.X - m_Point.X; 
	}
}
Ein Beispielprojekt habe ich dir angehängt
 

Anhänge