2010-08-19 4 views
2

Pourquoi l'événement dragdrop n'est jamais entré?Glisser-déposer depuis l'Explorateur Windows dans le TextBox de mon application

private void textBox1_DragDrop(object sender, DragEventArgs e) 
{ 
    Array a = (Array)e.Data.GetData(DataFormats.FileDrop); 

    e.Effect = DragDropEffects.All; 
    Debug.WriteLine("were in dragdrop"); 
} 

private void textBox1_DragEnter(object sender, DragEventArgs e) 
{ 
    if (e.Data.GetDataPresent(DataFormats.FileDrop, false) == true) 
    { 
     e.Effect = DragDropEffects.All; 
    } 
} 
+0

Avez-vous activé la propriété "AllowDrop" de votre zone de texte à "true"? par défaut c'est faux. – HerrVoennchen

+0

Oui, bien sûr: P – Panella

Répondre

1

Modifiez l'affectation e.Effect à DragDropEffects.Copy. Vérifiez que l'affectation d'événement est toujours là, cliquez sur l'icône représentant un éclair dans la fenêtre Propriétés. L'exemple de code est disponible dans this thread. Notez que vous pouvez convertir en string [] directement.

+0

Que faire si je définissais AllowDrop de FORM/Window sur false mais que AllowDrop du TextBox/DAtaGrid interne dans le formulaire sur True, est-ce que cela fonctionne? Je ne veux pas laisser l'utilisateur tomber sur le formulaire, juste dans la grille de données à l'intérieur du formulaire. – Panella

+0

C'est juste un exemple :) –

+0

oui ... mais quel cast dois-je utiliser pour obtenir le fichier et ses données réelles? octet []? – Panella

Questions connexes