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:

  1. Creare una nuova applicazione Windows Forms in Visual C# .NET o Visual C# 2005. Form1 viene creato per impostazione predefinita.

  2. Usare la casella degli strumenti per aggiungere un ListBox controllo a Form1.

  3. Nella finestra Proprietà modificare la AllowDrop proprietà del ListBox controllo su True per consentire il trascinamento degli oggetti nel controllo.

  4. In Esplora soluzioni fare clic con il pulsante destro del mouse su Form1 e quindi scegliere Visualizza codice.

  5. Per gestire l'eventoDragEnter, aggiungere il metodo seguente sotto la sezione di codice generata dall'Designer Windows Form nella Form1 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;
    }
    
  6. Per gestire l'evento DragDrop , aggiungere il metodo seguente alla Form1 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]);
    }
    
  7. Per associare i due gestori eventi agli eventi di controllo, aggiungere il codice seguente nel Form1 costruttore dopo la chiamata a InitializeComponent:

    this.listBox1.DragDrop += new
         System.Windows.Forms.DragEventHandler(this.listBox1_DragDrop);
    this.listBox1.DragEnter += new
         System.Windows.Forms.DragEventHandler(this.listBox1_DragEnter);
    
  8. Compilare ed eseguire il progetto.

  9. 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: