Autor Beitrag
d4p41n
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mi 16.11.05 14:16 
Im Moment habe ich eine Listbox Control geschrieben, das ein Bild mit Text in jeder Zeile darstellt.

Nun möchte ich eine Zeile dieser Listbox nehmen können und in einer anderen Listbox hineinfallen lassen können.
Während des drag Vorganges wollte ich unterhalb des Mauszeiges dieses Element dargestellt haben.

Habt ihr Ideen wie man so etwas verwirklichen könnte?
HaVoC
Hält's aus hier
Beiträge: 4


C# (VS 2005, VS 2003), JAVA (Eclipse), C++, C, Pascal
BeitragVerfasst: Mi 16.11.05 15:15 
Also:

Du musst für die ListBox, in die du die Daten ziehst den DragDrop und DragEnter-Event implementieren.

Für die Ursprungs-ListView musst du den MouseDown-Event implementieren und darin DoDragDrop aufrufen:


ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
//DragEvent "starten"
private void listViewSource_MouseDown(object sender,  MouseEventArgs args) {
//Selektiertes Element ermitteln und als Parameter 1 (hier tNode) übergeben
          listViewSource.DoDragDrop(item, DragDropEffects.Copy);
}         

 private void listViewTarget_DragDrop(object sender, DragEventArgs e)
        {
            ListViewItem item = (ListViewItem )e.Data.GetData(typeof(ListViewItem ));
 //damit holst du dir das gerade gezogene Objekt
//dieses nun einfach in die 2. ListView (sender) einfügen
        }

 
        private void listViewTarget_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(typeof(ListViewItem )))
                e.Effect = DragDropEffects.Copy;

        }


Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt
d4p41n Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mi 16.11.05 15:40 
Super danke!

ist es auch möglich, eine eigene Drag Grafik zu zeichnen?

In meinem Fall, würde ich gerne während ich den einen eintrag zur anderen listbox ziehe, das bild dieses eintrages sehen (zb. rechts unter dem mauscursor)...