Da ich mich wohl etwas undeutlich ausgedrückt habe schicke ich anbei die einfachste Form des Codes:
die Klasse Prozeß ist momentan nur eine Ableitung von Panel, so dass man alles was hier als Prozeß deklariert ist auch ohne Probleme als Panel verstehen kann
Sinn der Sache ist aus einer Art MenuLeiste ein Panel bzw. Prozeß in ein Panel(auf dem ich später arbeite) zu ziehen OHNE dass der Prozeß(Panel), den ich grad per Drag&Drop rüberkopiert hab aus der MenuLeiste verschwindet.
Es soll also nur eine Kopie desselben per Drag&Drop erstellt werden.
Hier der Code
private void prozeß1_MouseDown(object sender, MouseEventArgs e)
{
DoDragDrop(new DataObject("Prozeß", prozeß1), DragDropEffects.Copy);
}
private void panel2_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.All;
}
private void panel2_DragDrop(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.All;
Point pt = new Point(e.X - ((panel2.Bounds.X) + (Form1.ActiveForm.Bounds.X) + 5), e.Y - ((panel2.Bounds.Y) +
(Form1.ActiveForm.Bounds.Y) + 25));
Prozeß neu = new Prozeß();
neu = (Prozeß)e.Data.GetData("Prozeß");
neu.Bounds = new Rectangle(pt,neu.Size);
this.panel2.Controls.Add(neu);
}
P. S.Der Point pt ist dazu angelegt wurden um das Panel/Prozeß genau dahin zu kopieren wo mein Mauszeiger aktuell hinzeigt.