Zum Inhalt springen

C#.NET Drag&Drop kopieren


sTumPf84

Empfohlene Beiträge

Hallo

Ich hab das Problem, dass bei einem Drag&Drop Ereigniss mit dem Effekt 'Effect.Copy' das Panel, dass ich kopieren will, zwar dort platziert wird wo ich es haben will, allerdings wird es verschoben und nicht kopiert.

Das ist ein massives Problem, da ich noch mehrere Kopien dieses Panels brauch die ich dann weiter per Drag&Drop verschieben können muss.

Hat irgendwer eine Idee?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ist ja net, dass Du uns für allwissend hältst, und wir genau wissen was Du machen willst, machst und gecodet hast, das Problem ist leider, dass Du Dich in uns geirrt hast, denn wir sind nicht allwissend, wissen leider nicht genau was Du machen willst, machst oder gecodet hast.

Also versuch doch bitte nochmal Dein Problem zu beschreiben und diesmal bitte etwas genauer als "Ich hab da was mit Drag&Drop und nem Panel gebastelt und es geht nicht".

MfG

MarkusLe

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...