Imports System.Windows.Forms
Imports System.Drawing
Imports System.ComponentModel
'<ToolboxBitmap("OpenFileDialogEx.bmp")> _
Public Class OpenFileDialogEx
Inherits Component
''' <summary>
''' Der RückgabeWert des Dialogs
''' </summary>
''' <remarks></remarks>
Protected Friend Result As DialogResult
''' <summary>
''' Einige Punkte arbeiten nur unter Vista/Windows 7
''' </summary>
''' <remarks></remarks>
Public Enum Views
Icons = &H7029
List = &H702B
Details = &H702C
Tiles = &H702E
Thumbnails = &H702D
SmallIcons = &H7050 'Windows 7
MediumIcons = &H704E 'Windows 7
LargeIcons = &H704F 'Windows 7
ExtraLargeIcons = &H704D 'Windows 7
'List = &H7051 'Windows 7
'Details = &H704B 'Windows 7
'Tiles = &H704C 'Windows 7
End Enum
#Region "Sonstiges"
''' <summary>
''' Ruft einen Wert ab, der angibt, ob diese System.Windows.Forms.FileDialog-Instanz automatisch Darstellung und Verhalten aktualisieren soll, wenn Sie unter Windows Vista ausgeführt wird, oder legt diesen Wert fest.
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>Wenn dieses Property nicht gesetzt ist, egal ob true oder false, dann funktioniert es nicht unter Vista / Windows7</remarks>
<Description("Ruft einen Wert ab, der angibt, ob diese System.Windows.Forms.FileDialog-Instanz automatisch Darstellung und Verhalten aktualisieren soll, wenn Sie unter Windows Vista ausgeführt wird, oder legt diesen Wert fest."), _
DefaultValue(True)> _
Public Property AutoUpgradeEnabled As Boolean
#End Region
#Region "Verhalten"
<Description("Ruft einen Wert ab, der angibt, ob einem Dateinamen im Dialogfeld automatisch eine Erweiterung hinzugefügt wird, wenn der Benutzer keine Erweiterung angibt, oder legt diesen fest."), _
DefaultValue(True)> _
Public Property AddExtension As Boolean
<Description("Gibt an, ob eine Warnung angezeigt wird, wenn der Benutzer eine Datei anklickt, die nicht vorhanden ist."), _
DefaultValue(True)> _
Public Property CheckFileExist As Boolean
<Description("Überprüft ob der angegebene Pfad vorhanden ist bevor vom Dialog zurückgekehrt wird."), _
DefaultValue(True)> _
Public Property CheckPathExist As Boolean
<Description("Die Standartdateierweiterung. Wenn der Benutzer einen Dateinamen eingibt wird diese Erweiterung an die Datei angehängt sofern noch keine angegeben wurde."), _
DefaultValue("")> _
Public Property DefaultExt As String
<Description("Ruft einen Wert ab, der angibt, ob das Dialogfeld den Speicherort der Datei, auf die die Verknüpfung verweist, oder den Speicherort der Verknüpfung (.lnk) zurückgibt, oder legt diesen fest."), _
DefaultValue(True)> _
Public Property DereferenceLinks As Boolean
<Description("Steuert, ob mehrere Dateien im Dialogfeld ausgewählt werden können."), _
DefaultValue(False)> _
Public Property Multiselect As Boolean
<Description("Der Zustand des schreibgeschützten Kontrollkästchens im Dialog."), _
DefaultValue(False)> _
Public Property ReadOnlyChecked As Boolean
<Description("Steuert, ob das Dialogfeld das aktuelle Verzeichnis vor dem Schließen wiederherstellt."), _
DefaultValue(False)> _
Public Property RestoreDirectory As Boolean
<Description("Aktiviert die Schaltfläche Hilfe."), _
DefaultValue(False)> _
Public Property ShowHelp As Boolean
<Description("Steuert, ob das schreibgeschützte Kästchen im Dialogfeld angezeigt wird."), _
DefaultValue(False)> _
Public Property ShowReadOnly As Boolean
<Description("Ruft ab oder legt fest, ob das Dialogfeld Anzeige und Speichern von Dateien mit mehreren Dateinamenerweiterungen unterstützt."), _
DefaultValue(False)> _
Public Property SupportMultiDottedExtension As Boolean
<Description("Ruft einen Wert ab, der angibt, ob das Dialogfeld nur gültige Win32-Dateinamen akzeptiert, oder legt diesen fest."), _
DefaultValue(True)> _
Public Property ValidateNames As Boolean
<Description("Die im Dialogfeld angezeigten Filter z.B.: Images(*.jpg)|*.jpg|All Files|*.*"), _
DefaultValue("")> _
Public Property Filter As String
<Description("Ruft den Index des derzeit im Dateidialogfeld ausgewählten Filters ab oder legt diesen fest."), _
DefaultValue(0)> _
Public Property FilterIndex As Integer
<Description("Ruft eine Zeichenfolge ab, die den im Dateidialogfeld ausgewählten Dateinamen enthält, oder legt diese fest."), _
DefaultValue("")> _
Public Property FileName As String
'Privat
Private _FileNames As String()
<Description("Ruft die Dateinamen aller im Dialogfeld ausgewählten Dateien ab."), _
DefaultValue({""})> _
Public ReadOnly Property FileNames As String()
Get
If Multiselect Then
Return _FileNames
Else
Return {FileName}
End If
End Get
End Property
<Description("Ruft das Ausgangsverzeichnis ab, das im Dateidialogfeld angezeigt wird, oder legt dieses fest."), _
DefaultValue("")> _
Public Property InitialDirectory As String
<Description("Ruft den Titel des Dateidialogfelds ab oder legt diesen fest."), _
DefaultValue("Datei öffnen...")> _
Public Property Title As String
<Description("Standartansicht der Anzeige im Dialogfeld."), _
DefaultValue(Views.Thumbnails)> _
Public Property DefaultView As Views = Views.Thumbnails
#End Region
#Region "Events"
<Description("Tritt ein, wenn der Benutzer in einem Dateidialogfeld auf die Schaltfläche Öffnen oder Speichern klickt."), _
DefaultValue("")> _
Public Event FileOk(sender As System.Object, e As System.EventArgs)
<Description("Tritt ein, wenn der Benutzer in einem Standarddialogfeld auf die Hilfeschaltfläche klickt."), _
DefaultValue("")> _
Public Event HelpRequest(sender As System.Object, e As System.EventArgs)
#End Region
#Region "Protected Friend HelperSubs"
''' <summary>
''' Stellt eine Funktion bereit, um die schreibgeschützte Property FileNames zu füllen.
''' </summary>
''' <param name="values"></param>
''' <remarks></remarks>
Protected Friend Sub SetFileNames(values As String())
_FileNames = values
End Sub
''' <summary>
''' Auslösen des Events und durchreichen der Argumente
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Protected Friend Sub RaiseFileOK(sender As System.Object, e As System.EventArgs)
RaiseEvent FileOk(sender, e)
End Sub
''' <summary>
''' Auslösen des Events und durchreichen der Argumente
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Protected Friend Sub RaiseHelpRequest(sender As System.Object, e As System.EventArgs)
RaiseEvent HelpRequest(sender, e)
End Sub
#End Region
Public Function ShowDialog() As DialogResult
Using frm As New OFDForm(Me)
frm.ShowDialog()
End Using
Return Result
End Function
Public Function ShowDialog(value As Windows.Forms.IWin32Window) As DialogResult
Using frm As New OFDForm(Me, value)
frm.ShowDialog()
End Using
Return Result
End Function
End Class