2012-12-02 26 views
5

Ho il seguente DataGrid nome gridOperations. Ho impostato AllowDrop true, e utilizzato il seguente codice:File DragnDrop in DataGridView

private void gridOperations_DragDrop(object sender, DragEventArgs e) 
{ 

    if (e.Data.GetDataPresent(DataFormats.FileDrop)) 
    { 
     var files = (string[])e.Data.GetData(DataFormats.FileDrop); 
     foreach (var filePath in files) 
     { 
      MessageBox.Show(filePath); 
     } 
    } 

} 

private void gridOperations_DragEnter(object sender, DragEventArgs e) 
{ 
    if (e.Data.GetDataPresent(DataFormats.FileDrop)) 
     e.Effect = DragDropEffects.All; 
    else 
     e.Effect = DragDropEffects.None; 
} 

ma quando provo a trascinare il file nella DataGrid, mi dà il cursore 'STOP'. Che cosa sto facendo di sbagliato?

È possibile perché è associato a Elenco?

Fondamentalmente quello che mi serve è ottenere il nome del file dal file trascinato nel datagrid e determinare in quale cella è stato trascinato.

+2

Giusto per confermare, ma si imposta 'AllowDrop' su' DataGridView', giusto? Chiedo perché il modulo padre può anche consentire il trascinamento della selezione. –

+0

Ho anche affrontato problemi simili e nel mio caso non avevo impostato AllowDrop su true. – mihirj

+0

@Kristian Se vuoi che la community ti aiuti, dovresti fornire maggiori informazioni sul tuo problema. –

risposta

1

La griglia e tutti i controlli principali sono abilitati?

Il tuo codice è corretto e funziona. L'unica cosa che posso pensare è che il tuo GridView potrebbe non essere abilitato. È possibile modificare la riga corrente della griglia facendo clic quando l'applicazione è in esecuzione?