Autor Beitrag
DiaryOfDreams
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Di 16.02.10 16:42 
Ich wollte heute mal einen Blick auf "Drag & Drop" werfen und zu diesem Zwecke Farbe aus einem (von zwei) Panels in ein anderes (drittes) Panel kopieren.
Das klappt auch, allerdings nicht so wie ich das gerne hätte.
Erstmal etwas Code:

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
private void panel3_DragEnter(object sender, DragEventArgs e)
    {
        if (e.Data.GetDataPresent(typeof(Color)))
        {
            e.Effect = DragDropEffects.Move;
            //panel3.BackColor = (Color)e.Data.GetData(typeof(Color));
        }
        else
        {
            e.Effect = DragDropEffects.None;
        }
    }

    private void panel3_DragDrop(object sender, DragEventArgs e)
    {
        if (e.Data.GetDataPresent(typeof(Color)))
        {
            panel3.BackColor = (Color)e.Data.GetData(typeof(Color));
        }
    }

    private void panel2_MouseDown(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left)
        {
            panel2.DoDragDrop(panel2.BackColor, DragDropEffects.Copy);
        }
    }

    private void panel1_MouseDown(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left)
        {
            panel1.DoDragDrop(panel1.BackColor, DragDropEffects.Copy);
        }
    }


Leider passiert so gar nichts und die Maus zeigt überall einen durchgestrichenen Kreis an. Wenn ich in der obersten Methode den auskommentierten Code wieder einkommentiere findet Drag Und Drop statt, allerdings sofort wenn ich mit der Maus über ein mögliches Ziel fahre, was bei mehreren Zielen recht unpraktisch ist. ;-)
Ich würde mich freuen wenn mir jemand sagen kann wo der Fehler liegt.

MfG DoD

EDIT: Habe gerade herausgefunden das die Methode "panel3_DragDrop()" überhaupt nicht aufgerufebn wird...das müsste das Programm doch selber machen, wenn "AllowDrop" auf "True" steht, oder?
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Di 16.02.10 19:45 
Einmal Copy, einmal Move? Da würde ich als Panel auch die Arbeit verweigern :zwinker: .

_________________
>λ=
DiaryOfDreams Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Mi 17.02.10 08:38 
Argh. Vielen Dank. :-)
Jaja, wenn man sich mit der Materie nicht richtig auskennt kann man lange suchen - ich dachte das würde einfach nur 'nen Effekt bewirken, im Sinne von das da eine Animation anzeigt das man gerade was per Drag % Drop bewegt. Ich bin gar nicht auf die Idee gekommen dem Code-Teil mehr Aufmerksamkeit zu widmen.