Jump to content

[Resolvido] Como aceitar arquivos arrastados?


User LoL

Recommended Posts

Tenho um form,com um richtextbox,quando o app esta em execução,eu arrasto um arquivo de texto pra cima do richtextbox,mas aparece a setinha de negação "X" ou seja,nao tem como arrastar o arquivo de texto,pro richtextbox,como eu faço pra o richtextbox aceitar que sejam arrastados arquivos,e ele conseguir ler o arquivo de texto quando for arrastado pra la?

Link to comment
Share on other sites

Funciona bem,só esta parte que não,essa seria a parte responsavel por aceitar arquivos arrastados,conforme o link,eu só adicionei esse código,falta mais oque alem disso?

   Private Sub RichTextBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles RichTextBox1.DragDrop
    RichTextBox1.Text = e.Data.GetData(DataFormats.Text)
   End Sub
   Private Sub RichTextBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles RichTextBox1.MouseDown
    RichTextBox1.DoDragDrop(RichTextBox1.Text, DragDropEffects.Copy)
   End Sub
Link to comment
Share on other sites

Volta a ler o artigo, aqui http://wiki.portugal-a-programar.pt/dev_net:vb.net:dragdrop#para_ficheiros

Quando arrastas um ficheiro, o conteúdo não é DataFormats.Text, mas DataFormats.FileDrop e compreende o caminho absoluto para o ficheiro.

Isto significa que no handler do DragDrop, tens de ler o texto do ficheiro e só depois dar à RichText.

O artigo tem um exemplo parecido...

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other sites

Estudei melhor o código e não vi utilidade nenhuma na segunda parte,a MouseDown,pelo contrário ,essa parte do código estava me atrapalhando,então resolvi personalizar e enxugar esse código,funcionou,ficou assim

Private Sub RichTextBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles RichTextBox1.DragDrop
    Dim rich As String() = e.Data.GetData(DataFormats.FileDrop)
    For Each f As String In rich
richtextbox1.text = f

Obrigado Ribeiro

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.