GELÖST VB.NET Datei per Drag&Drop in TextBox

Diskutiere VB.NET Datei per Drag&Drop in TextBox im Programmierung Forum im Bereich Software Forum; Wie kann ich den Dateinamen, der Datei die ich per Drag&Drop in die TextBox gezogen habe, in einer MessageBox anzeigen.
K

knobbelmax

Threadstarter
Mitglied seit
27.01.2009
Beiträge
44
Wie kann ich den Dateinamen, der Datei die ich per Drag&Drop in die TextBox gezogen habe, in einer MessageBox anzeigen.
 
DiableNoir

DiableNoir

Mitglied seit
18.01.2004
Beiträge
6.069
Also erstmal musst du die AllowDrop-Eigenschaft des Textfeldes auf True setzen. (Geht auch im Designer)

Dann musst du das Ereignis DragOver der Textbox implementieren.
Sie prüft das Datenformat und falls es sich um Dateien handelt, schaltet sie die Drag&Drop-Funktionalität frei.
Code:
  Private Sub TextBox1_DragOver(ByVal sender As System.Object, ByVal e As DragEventArgs) Handles TextBox1.DragOver
    'Prüfe das Format der abgelegten Daten
    If e.Data.GetDataPresent(DataFormats.FileDrop) Then _
      e.Effect = DragDropEffects.Copy
  End Sub
Dann musst du das Ereignis DragDrop implementieren und alle fallengelassenen Dateinamen nur mehr abholen. Da man auch mehrere Dateien auf ein Control ziehen kann, habe ich den Code so geschrieben, dass die Daten erst einmal in einem StringBuilder gesammelt und dann erst als MessageBox ausgegeben werden.
Du kannst die Daten aber auch anders aufbereiten/verwenden. Soll nur ein Beispiel sein.
Code:
  Private Sub TextBox1_DragDrop(ByVal sender As System.Object, ByVal e As DragEventArgs) Handles TextBox1.DragDrop
    Dim oDroppedData As DataObject = CType(e.Data, DataObject)
    Dim sFileList As System.Text.StringBuilder = New System.Text.StringBuilder()

    For Each sFileName As String In oDroppedData.GetFileDropList()
      sFileList.AppendLine(sFileName)
    Next

    MessageBox.Show(sFileList.ToString())
  End Sub
Das sollte eigentlich alles sein was du brauchst. ;)
 
K

knobbelmax

Threadstarter
Mitglied seit
27.01.2009
Beiträge
44
Danke habe sowas habe ich gesucht.
 
E

exteci

Mitglied seit
10.09.2009
Beiträge
2
Hallo,
ich habe ein ähnliches problem.
Nur das ich statt den Dateinamen den gesammten Dateipfad bzw Verzeichnispfad in der Textbox stehen haben will.

Was musst ich da an DiableNoir's bespiel ändern, damit das klappt?


vielen dank ich vorraus!
 
DiableNoir

DiableNoir

Mitglied seit
18.01.2004
Beiträge
6.069
:welcome

Also das ist kein Problem. Die Klasse Path in System.IO erlaubt das einfache Abfragen von Informationen zu diesen Pfadnamen.

Ich glaube du willst nur den Pfad in dem die Dateien/Ordner enthalten sind anzeigen, oder?

Dann geht das so:
Code:
  Private Sub TextBox1_DragDrop(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1.DragDrop
    Dim oDroppedData As DataObject = CType(e.Data, DataObject)
    Dim sFileList As System.Text.StringBuilder = New System.Text.StringBuilder()

    For Each sFileName As String In oDroppedData.GetFileDropList()
     [b] sFileName = System.IO.Path.GetDirectoryName(sFileName)[/b]
      sFileList.AppendLine(sFileName)
    Next

    TextBox1.Text = sFileList.ToString()
  End Sub
 
E

exteci

Mitglied seit
10.09.2009
Beiträge
2
Danke;)


jap genau das meinte ich...
klappt auch hervorragend
ich hatts ne weile mit dem von oben versucht aber ned hibekommen :D

vielen Dank!
 
DiableNoir

DiableNoir

Mitglied seit
18.01.2004
Beiträge
6.069
Kein Problem. ;)

Wenn du Funktionen brauchst, die das Dateisystem betreffen, dann musst du nur in den Namespace System.IO sehen. Dort gibt es alle Klassen die du dazu benötigst. ;)

Am Schnellsten geht es über eine lokale MSDN Library oder die auf der MSDN-Website:
http://msdn.microsoft.com/de-de/library/system.io.aspx
 
Thema:

VB.NET Datei per Drag&Drop in TextBox

VB.NET Datei per Drag&Drop in TextBox - Ähnliche Themen

  • GELÖST mit batch datei i-net seite aufrufen und login daten eingeben

    GELÖST mit batch datei i-net seite aufrufen und login daten eingeben: Hallo liebe Community Hoffe ihr könnt mir mal weiter helfen habe da n klenes problemchen ich möchte das wen ich eine batch datei ausführe...
  • GELÖST net use batch datei problem

    GELÖST net use batch datei problem: hallo, ich habe von einem bekannten den auftrag bekommen, seinen seine 2 notebooks mit seinem lokalen drucker zu verbinden. er hat auf seinem...
  • .NET Framework 1.1 Languagepack - Fehlende Datei

    .NET Framework 1.1 Languagepack - Fehlende Datei: Guten Tag, ein von mir benötigtes Programm benötigt bei der Installation das .NET Framework 1.1 mit Languagepack. Das Framework selbst ist...
  • .net dateien

    .net dateien: hallo, mir ist aufgefallen das mein pc ziemlich voll ist und habe viele sachen gelöscht mir ist aber aufgefallen das der ordern WINDOWS 90GB groß...
  • net use in batch datei über gpedit starten ?

    net use in batch datei über gpedit starten ?: Tag zusammen, habe folgendes Problem, ich möchte das beim Hochfahren des Rechners (von meiner Freundin) die Laufwerke gemappt werden die ich...
  • Ähnliche Themen

    • GELÖST mit batch datei i-net seite aufrufen und login daten eingeben

      GELÖST mit batch datei i-net seite aufrufen und login daten eingeben: Hallo liebe Community Hoffe ihr könnt mir mal weiter helfen habe da n klenes problemchen ich möchte das wen ich eine batch datei ausführe...
    • GELÖST net use batch datei problem

      GELÖST net use batch datei problem: hallo, ich habe von einem bekannten den auftrag bekommen, seinen seine 2 notebooks mit seinem lokalen drucker zu verbinden. er hat auf seinem...
    • .NET Framework 1.1 Languagepack - Fehlende Datei

      .NET Framework 1.1 Languagepack - Fehlende Datei: Guten Tag, ein von mir benötigtes Programm benötigt bei der Installation das .NET Framework 1.1 mit Languagepack. Das Framework selbst ist...
    • .net dateien

      .net dateien: hallo, mir ist aufgefallen das mein pc ziemlich voll ist und habe viele sachen gelöscht mir ist aber aufgefallen das der ordern WINDOWS 90GB groß...
    • net use in batch datei über gpedit starten ?

      net use in batch datei über gpedit starten ?: Tag zusammen, habe folgendes Problem, ich möchte das beim Hochfahren des Rechners (von meiner Freundin) die Laufwerke gemappt werden die ich...
    Oben