Tweakers,
Ik zit met een probleem, op zich hoeft het geen groot probleem te zijn, maar ik zit met een issue in C#, het draggen en droppen.
Ik ben voor mezelf een FTP client aan het maken, zie het plaatje hieronder:
'
Nu wil ik dus drag en drop implementeren van de listview aan de linkerkant, naar de listview aan de rechterkant. Volgens de MSDN begint een drag en drop operatie met een MOUSEDOWN. Dit heb ik dan ook geimplemteerd, en de andere dingen die noodzakelijk zijn.
Maar nu heb ik dus mijn probleem. De listview kent een OnItemActivate, om te kunnen dubbelklikken op de mapjes.
Maar nu conflicteerd dit dus. De oplossing die ik zoek is een dubbelklik op een map-item -> de directory wordt geopend, en een klik->sleep moet de drag&drop worden geactiveerd.
Ik zit met een probleem, op zich hoeft het geen groot probleem te zijn, maar ik zit met een issue in C#, het draggen en droppen.
Ik ben voor mezelf een FTP client aan het maken, zie het plaatje hieronder:
'Nu wil ik dus drag en drop implementeren van de listview aan de linkerkant, naar de listview aan de rechterkant. Volgens de MSDN begint een drag en drop operatie met een MOUSEDOWN. Dit heb ik dan ook geimplemteerd, en de andere dingen die noodzakelijk zijn.
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| private void flvOnMouseDown(object sender, MouseEventArgs mea) { DragDropEffects dde = DoDragDrop("listviewItemWaarde", DragDropEffects.Copy); } private void flvOnDragDrop(object sender, DragEventArgs dea) { //copy the shit } private void flvOnDragOver(object sender, DragEventArgs dea) { dea.Effect = DragDropEffects.Copy; } |
Maar nu heb ik dus mijn probleem. De listview kent een OnItemActivate, om te kunnen dubbelklikken op de mapjes.
C#:
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
| protected override void OnItemActivate(EventArgs ea) { base.OnItemActivate(ea); foreach(ListViewItem lvi in SelectedItems) { try { if(lvi.Text == "..") { strDirectory = strDirectory.Substring(0, strDirectory.LastIndexOf("\\")); this.ShowFiles(strDirectory); } if(lvi.Tag.ToString() == "FILE") { return; } this.ShowFiles(lvi.Tag.ToString()); } catch { continue; } } } |
Maar nu conflicteerd dit dus. De oplossing die ik zoek is een dubbelklik op een map-item -> de directory wordt geopend, en een klik->sleep moet de drag&drop worden geactiveerd.