Artigo: 306969 - Última revisão: domingo, 13 de Maio de 2007 - Revisão: 3.5

Como fornecer a funcionalidade de arrastar e largar ficheiros numa aplicação do Visual Basic 2005 ou do Visual Basic .NET

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Para obter uma Microsoft Visual C# .NET versão deste artigo, consulte 307966  (http://support.microsoft.com/kb/307966/ ) .

Nesta página

Expandir tudo | Reduzir tudo

Sumário

O procedimento passo-a-passo descrito neste artigo demonstra como fornecer a funcionalidade de arrastar e largar ficheiros numa aplicação do Microsoft Visual Basic 2005 ou do Microsoft Visual Basic. NET. Um controlo de caixa de listagem é utilizado como destino do procedimento de arrastar e largar ficheiros.

Requisitos

A lista seguinte descreve o hardware recomendado, software, infra-estrutura de rede e service packs que necessita:
  • Visual Basic 2005 ou do Visual Basic .NET
Este artigo pressupõe que está familiarizado com os seguintes tópicos:
  • Controlo de caixa de listagem do Windows Forms
  • Processamento de eventos do Windows Forms

Passos para criar o exemplo

O controlo de caixa de listagem fornece dois eventos de arrastar e largar que é necessário processar: DragEnter e DragDrop . O evento DragEnter ocorre quando arrasta um objecto dentro dos limites do controlo e é utilizado para determinar se o objecto que está a ser arrastado é aquele que pretende autorizar para ser largado no controlo. Processa este evento nos casos em que um ou mais ficheiros são arrastados para o controlo. Isto permite que o ícone apropriado ser apresentada quando o objecto é arrastado sobre o controlo, dependendo do objecto que está a ser arrastado. O evento DragDrop ocorre quando o objecto que está a ser arrastado lançado no controlo. Processa este evento para obter o objecto. O objecto de dados é utilizado para obter os dados.

GetData método o objecto de dados devolve uma matriz de cadeias que contêm os nomes de caminho completo dos ficheiros que foram arrastados para o controlo de caixa de listagem . Pode utilizar estas informações de caminho de ficheiro para efectuar as operações necessárias nos ficheiros. Por exemplo, pode utilizar classes no espaço de nomes System.IO para abrir e ler os ficheiros, mover os ficheiros ou copiar os ficheiros para uma nova localização. Este exemplo adiciona apenas o caminho completo para os ficheiros são arrastados para o controlo de caixa de listagem .

Para fornecer a funcionalidade de arrastar e largar ficheiros numa aplicação do Visual Basic .NET ou Visual Basic 2005, siga estes passos:
  1. Crie uma nova aplicação de formulários do Windows no Visual Basic 2005 ou do Visual Basic. NET. É criado o Form1 por predefinição.
  2. Utilize a caixa de ferramentas para adicionar um controlo ListBox ao Form1.
  3. Na janela Propriedades, altere a propriedade AllowDrop do controlo de caixa de listagem como Verdadeiro para permitir que os objectos a ser arrastado para o controlo.
  4. No Solution Explorer, clique com o botão direito do rato em Form1 e, em seguida, clique em Código .
  5. Para processar o evento DragEnter , adicione o seguinte método abaixo da secção de código que gera o criador de formulários Windows na classe Form1:
        Private Sub ListBox1_DragEnter(ByVal sender As Object, _
                                       ByVal e As System.Windows.Forms.DragEventArgs) _
                                       Handles ListBox1.DragEnter
            If (e.Data.GetDataPresent(DataFormats.FileDrop)) Then
                e.Effect = DragDropEffects.All
            Else
                e.Effect = DragDropEffects.None
            End If
        End Sub
    					
  6. Para processar o evento DragDrop , adicione o seguinte método à classe Form1 imediatamente a seguir o método que adicionou no passo 5:
        Private Sub ListBox1_DragDrop(ByVal sender As Object, _
                                      ByVal e As System.Windows.Forms.DragEventArgs) _
                                      Handles ListBox1.DragDrop
            Dim s() As String = e.Data.GetData("FileDrop", False)
            Dim i As Integer
            For i = 0 To s.Length - 1
                ListBox1.Items.Add(s(i))
            Next i
        End Sub
    					
  7. Crie e execute o projecto.
  8. Arraste um ou mais ficheiros a partir do ambiente de trabalho ou outra pasta para o controlo de caixa de listagem . Repare que o caminho completo dos ficheiros é adicionado ao controlo de caixa de listagem .

Referências

Para mais informações, visite os seguintes Web sites da Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/system.windows.forms.control.dragenter(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/system.windows.forms.control.dragenter(vs.71).aspx)

http://msdn2.microsoft.com/en-us/library/system.windows.forms.control.dragdrop(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/system.windows.forms.control.dragdrop(vs.71).aspx)

A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Palavras-chave: 
kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB306969 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 306969  (http://support.microsoft.com/kb/306969/en-us/ )