Fornecer funcionalidade de arrastar e soltar arquivos em um aplicativo Visual C#
Este artigo mostra como fornecer a funcionalidade de arrastar e soltar arquivos em um aplicativo visual C#.
Versão original do produto: Visual C++
Número de KB original: 307966
Resumo
O procedimento passo a passo descrito neste artigo demonstra como fornecer a funcionalidade de arrastar e soltar arquivos em um aplicativo Visual C#. Um ListBox
controle é usado como o destino do procedimento de arrastar e soltar arquivos.
Requisitos
Esta lista descreve o hardware, o software, a infraestrutura de rede e os pacotes de serviço recomendados que você precisa: Visual C#.
Este artigo pressupõe que você esteja familiarizado com os seguintes tópicos:
Windows Forms ListBox control
Windows Forms event handling
Etapas para criar o exemplo
O controle ListBox fornece dois eventos de arrastar e soltar que você precisa manipular: DragEnter
e DragDrop
. O DragEnter
evento ocorre quando você arrasta um objeto dentro dos limites do controle e é usado para determinar se o objeto que está sendo arrastado é aquele que você deseja permitir que seja descartado no controle. Você manipula esse evento para casos em que um arquivo ou arquivos são arrastados para o controle. Isso permite que o ícone apropriado seja exibido quando o objeto é arrastado pelo controle, dependendo do objeto que está sendo arrastado. O DragDrop
evento ocorre quando o objeto que está sendo arrastado foi liberado no controle. Você manipula esse evento para recuperar o objeto. O objeto Data é usado para recuperar os dados.
O método do GetData
objeto Data retorna uma matriz de cadeias de caracteres que contêm os nomes de caminho completos dos arquivos que foram arrastados para o ListBox
controle. Você pode usar essas informações de caminho de arquivo para executar todas as operações necessárias nos arquivos. Por exemplo, você pode usar classes no System.IO
namespace para abrir e ler os arquivos, mover os arquivos ou copiar os arquivos para um novo local. Neste exemplo, basta adicionar o caminho completo aos arquivos que são arrastados para o ListBox
controle.
Para fornecer a funcionalidade de arrastar e soltar arquivos em um aplicativo Visual C#, siga estas etapas:
Crie um novo aplicativo Windows Forms no Visual C# .NET ou Visual C# 2005. O Form1 é criado por padrão.
Use a caixa de ferramentas para adicionar um
ListBox
controle ao Form1.Na janela Propriedades , altere a
AllowDrop
propriedade doListBox
controle para True para permitir que objetos sejam arrastados para o controle.Em Gerenciador de Soluções, clique com o botão direito do mouse em Formulário1 e clique em Exibir Código.
Para manipular o
DragEnter
evento, adicione o seguinte método abaixo da seção de código que o Designer do Windows Form gera naForm1
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; }
Para manipular o
DragDrop
evento, adicione o seguinte método àForm1
classe imediatamente seguindo o método que você adicionou na etapa 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]); }
Para associar os dois manipuladores de eventos aos eventos de controle, adicione o seguinte código no
Form1
construtor após a chamada aInitializeComponent
:this.listBox1.DragDrop += new System.Windows.Forms.DragEventHandler(this.listBox1_DragDrop); this.listBox1.DragEnter += new System.Windows.Forms.DragEventHandler(this.listBox1_DragEnter);
Crie e execute o projeto.
Arraste um ou mais arquivos da área de trabalho ou de outra pasta para o controle ListBox. O caminho completo dos arquivos é adicionado ao
ListBox
controle.
Referências
Para obter mais informações, confira os seguintes sites da Web:
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários