Module Modul_Tools 'Methonden_Index: '1.Datei- und Ordnerdialoge (Mindesanforderung: VB.Net 2005; Framework: 2.0) ' 1.1 FolderBrowserDialog ' 1.2 OpenFileDialog ' 1.3 SaveFileDialog '################################################################################################################### '############### 1.Datei- und Ordnerdialoge ######################################################################## '############### http://www.vb-fun.de/dotnet/tipps/tip0212.shtml ################################################### '################################################################################################################### '################################################################################################################### '############### 1.1 FolderBrowserDialog ########################################################################### '################################################################################################################### Public Sub FolderBrowserDialog(ByRef sPath As String) 'Verändert die übergebene variable, 'wenn der benutzer durch "OK" den neuen Pfad bestätigt Using fbd As New FolderBrowserDialog With fbd ' Ordnervorschlag .SelectedPath = "c:\" ' RootFolder verwendet man nur zum Eingrenzen auf eine _ ' bestimmte Ordnerebene ' z.B.: .RootFolder = Environment.SpecialFolder.MyPictures .Description = "Bitte einen Ordner auswählen." ' Button "Neuen Ordner erstellen" anzeigen .ShowNewFolderButton = True ' Zeile ruft den Dialog auf, weitere Ausführung nur bei ' Resultat OK: If .ShowDialog = Windows.Forms.DialogResult.OK Then sPath = .SelectedPath Else 'Nothing End If End With End Using End Sub 'FolderBrowserDialog '################################################################################################################### '############### 1.2 OpenFileDialog ################################################################################ '################################################################################################################### 'Private Sub Button1_Click(ByVal sender As Object, ByVal e As _ ' EventArgs) Handles Button1.Click ' ' ### OpenFileDialog ### ' Dim txt As String = "" ' Using ofd As New OpenFileDialog ' With ofd ' ' Ordnervorschlag ' .InitialDirectory = Pfad ' .Title = "Wähle Datei zum öffnen" ' ' Dateivorschlag (falls sinnvoll) ' ' .FileName = "Datei.gif" ' ' Filter ' .Filter = TextBox2.Text ' ' boolsche Abfrage ob Mehrfachauswahl zulässig ' .Multiselect = Not ChkEinzel.Checked ' ' Zeile ruft den Dialog auf, weitere Ausführung nur bei ' ' Resultat OK: ' If .ShowDialog = Windows.Forms.DialogResult.OK Then ' If ChkEinzel.Checked = True Then ' ' Bei Einzelauswahl wertet man .FileName aus ' txt = .FileName & vbNewLine ' Else ' ' Bei möglicher Multiselektion wertet man ' ' das Array .FileNames aus ' For Each filename As String In .FileNames ' txt &= filename & vbNewLine ' Next ' End If ' ' Welcher Filter wurde verwendet? ' Dim idx As Integer = .FilterIndex ' txt &= "FilterIndex: " & idx.ToString & vbNewLine ' txt &= "Gewählter Filter: " & FilterDescription(.Filter, _ ' idx) & vbNewLine ' txt &= "Multiselect: " & .Multiselect.ToString ' Else ' txt = "Abbruch durch Benutzer" ' End If ' End With ' End Using ' TextBox1.Text = txt 'End Sub 'OpenFileDialog '################################################################################################################### '############### 1.3 SaveFileDialog ################################################################################ '################################################################################################################### 'Private Sub Button2_Click(ByVal sender As Object, ByVal e As _ ' EventArgs) Handles Button2.Click ' ' ### SaveFileDialog ### ' Dim txt As String ' Using sfd As New SaveFileDialog ' With sfd ' ' Ordnervorschlag ' .InitialDirectory = Pfad ' .Title = "Eingabe Datei zum speichern (Es wird hier nicht "_ ' "wirklich überschrieben)" ' ' Dateivorschlag ' .FileName = "Datei.gif" ' ' Filter ' .Filter = TextBox2.Text ' ' Zeile ruft den Dialog auf, weitere Ausführung nur bei ' ' Resultat OK: ' If .ShowDialog = Windows.Forms.DialogResult.OK Then ' txt = .FileName & vbNewLine ' ' Welcher Filter wurde verwendet? ' Dim idx As Integer = .FilterIndex ' txt &= "FilterIndex: " & idx.ToString & vbNewLine ' txt &= "Gewählter Filter: " & FilterDescription(.Filter, _ ' idx) ' Else ' txt = "Abbruch durch Benutzer" ' End If ' End With ' End Using ' TextBox1.Text = txt 'End Sub 'SaveFileDialog '################################################################################################################### '############### xxxxxxxxxxxxxxxxxxxxxxx ########################################################################### '################################################################################################################### 'Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As _ ' Object, ByVal e As EventArgs) _ ' Handles ComboBox1.SelectedIndexChanged ' Dim strFilter As String ' Select Case ComboBox1.SelectedIndex ' Case 0 ' ' Einfacher Filter ' strFilter = "Gif Bilddateien|*.gif" ' Case 1 ' ' Erweiterter Filter ' strFilter = "JPEG Bilddateien|*.jpg|Gif Bilddateien|*.gif|Alle Dateien|*.*" ' Case Else ' ' Mehrere Dateierweiterungen in einer Auswahl ' strFilter = "Alle Bilddateien|*.jpg; *.jpeg; *.bmp; *.gif, *.tif|Alle Dateien|*.*" ' End Select ' TextBox2.Text = strFilter 'End Sub 'ComboBox1_SelectedIndexChanged 'Private Function FilterDescription(ByVal Filter As String, _ ' ByVal Index As Integer) As String ' ' erstellt aus dem Filterstring die Bezeichnung ' Dim strArr() As String = Split(Filter, "|"), _ ' MyList As New List(Of String) ' For i As Integer = 0 To strArr.GetUpperBound(0) ' If (i Mod 2 = 0) Then MyList.Add(strArr(i)) ' Next ' Return MyList(Index - 1) 'End Function 'FilterDescription '################################################################################################################### '############### 1.Datei- und Ordnerdialoge ################################# ENDE ######################### '############### http://www.vb-fun.de/dotnet/tipps/tip0212.shtml ################################################### '################################################################################################################### End Module