Fornire la funzionalità di trascinamento della selezione dei file in un'applicazione Visual C#
Questo articolo illustra come fornire la funzionalità di trascinamento della selezione dei file in un'applicazione Visual C#.
Versione originale del prodotto: Visual C++
Numero KB originale: 307966
Riepilogo
La procedura dettagliata descritta in questo articolo illustra come fornire la funzionalità di trascinamento della selezione dei file in un'applicazione Visual C#. Un ListBox
controllo viene utilizzato come destinazione della procedura di trascinamento della selezione del file.
Requisiti
Questo elenco descrive l'hardware, il software, l'infrastruttura di rete e i Service Pack consigliati necessari: Visual C#.
Questo articolo presuppone che si abbia familiarità con gli argomenti seguenti:
Windows Forms ListBox control
Windows Forms event handling
Passaggi per compilare l'esempio
Il controllo ListBox fornisce due eventi di trascinamento della selezione che è necessario gestire: DragEnter
e DragDrop
. L'evento DragEnter
si verifica quando si trascina un oggetto all'interno dei limiti del controllo e viene utilizzato per determinare se l'oggetto trascinato è quello che si vuole consentire di rilasciare sul controllo. Questo evento viene gestito per i casi in cui un file o file viene trascinato nel controllo. In questo modo è possibile visualizzare l'icona appropriata quando l'oggetto viene trascinato sul controllo, a seconda dell'oggetto trascinato. L'evento DragDrop
si verifica quando l'oggetto trascinato è stato rilasciato sul controllo . Questo evento viene gestito per recuperare l'oggetto . L'oggetto Data viene utilizzato per recuperare i dati.
Il metodo dell'oggetto GetData
Data restituisce una matrice di stringhe che contengono i nomi di percorso completi dei file trascinati nel ListBox
controllo. È possibile usare queste informazioni sul percorso del file per eseguire le operazioni necessarie sui file. Ad esempio, è possibile usare le classi nello System.IO
spazio dei nomi per aprire e leggere i file, spostare i file o copiare i file in un nuovo percorso. In questo esempio è sufficiente aggiungere il percorso completo ai file trascinati nel ListBox
controllo.
Per fornire la funzionalità di trascinamento della selezione dei file in un'applicazione Visual C#, seguire questa procedura:
Creare una nuova applicazione Windows Forms in Visual C# .NET o Visual C# 2005. Form1 viene creato per impostazione predefinita.
Usare la casella degli strumenti per aggiungere un
ListBox
controllo a Form1.Nella finestra Proprietà modificare la
AllowDrop
proprietà delListBox
controllo su True per consentire il trascinamento degli oggetti nel controllo.In Esplora soluzioni fare clic con il pulsante destro del mouse su Form1 e quindi scegliere Visualizza codice.
Per gestire l'evento
DragEnter
, aggiungere il metodo seguente sotto la sezione di codice generata dall'Designer Windows Form nellaForm1
classe :private void listBox1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e) { if(e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.All; else e.Effect = DragDropEffects.None; }
Per gestire l'evento
DragDrop
, aggiungere il metodo seguente allaForm1
classe immediatamente dopo il metodo aggiunto nel passaggio 5:private void listBox1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) { string[] s = (string[]) e.Data.GetData(DataFormats.FileDrop, false); int i; for(i = 0; i < s.Length; i++) listBox1.Items.Add(s[i]); }
Per associare i due gestori eventi agli eventi di controllo, aggiungere il codice seguente nel
Form1
costruttore dopo la chiamata aInitializeComponent
:this.listBox1.DragDrop += new System.Windows.Forms.DragEventHandler(this.listBox1_DragDrop); this.listBox1.DragEnter += new System.Windows.Forms.DragEventHandler(this.listBox1_DragEnter);
Compilare ed eseguire il progetto.
Trascinare uno o più file dal desktop o da un'altra cartella nel controllo ListBox. Il percorso completo dei file viene aggiunto al
ListBox
controllo .
Riferimenti
Per altre informazioni, vedere i siti Web seguenti:
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per