2017-12-10 6 views
0

Ich muss ziehen ziehen & Drop-Effekte mit einigen Tasten, während ich etwas Text in einer Listbox ziehen.Wie erhalte ich wichtige Zustände, wenn ich ein Objekt über ein Steuerelement ziehe? - C#

Das Problem ist DragOver Methode nicht angezeigt, wenn Tasten gedrückt werden. Effekte ändern sich nicht. Was kann ich dagegen tun?

+0

https://msdn.microsoft.com/en-us/library/system.windows.forms.control.querycontinuedrag(v=vs.110).aspx –

+0

@Hans Passant Ich kann immer noch nicht Verstehen, wie man Cursor-Effekte ändert. QueryContinueDrag hilft nicht –

Antwort

0
bool ctrlD = false 

Verwenden object sender

private void textBox_MouseDown(object sender, MouseEventArgs e) 
{ 
    if (e.Button == MouseButtons.Left) 
    { 
     this.DoDragDrop(sender, DragDropEffects.All); 
    } 
} 

Stellen Sie sicher, AllowDrop auf True

Add (MyContol) (_DragEnter) und (_DragDrop) Ereignisse setzen

private void MyControl_DragEnter(object sender, DragEventArgs e) 
{ 
    /* 
    DragDropEffects 
    */ 
    e.Effect = DragDropEffects.Copy; 
} 

private void MyControl_DragDrop(object sender, DragEventArgs e) 
{ 
    TextBox tb = e.Data.GetData(typeof(TextBox)) as TextBox; 
    /* 
    MyControl.Controls.Add(tb); 
    * Your code here 
    */ 
} 
+0

das löst das Problem nicht. –

Verwandte Themen