1. Vereinfachte Anwendung, Ausbaufähigkeit (intern),
kontrollierte Zuweisung über Properties, ....
3. Progressbar geht nicht, weil die Gesamtzahl der Dateien
nicht bekannt ist - im Beispiel wird die Zahl gefundener Dateien gemeldet
2.
Public Class frmFindFiles
Dim WithEvents ff As New FindFiles
Dim WithEvents btnFolder As New Button With _
{.Parent = Me, .Text = "Ordner für Dateisuche", .Width = 300}
Dim fbd As New FolderBrowserDialog With _
{.Description = btnFolder.Text, .ShowNewFolderButton = False}
Dim txtPattern As New TextBox With _
{.Parent = Me, .Text = "*.*", .Top = 50, .Width = 300}
Dim WithEvents btnStart As New Button With _
{.Parent = Me, .Text = "Start der Suche", _
.Width = 150, .Top = 100, .Enabled = False}
Dim WithEvents btnCancel As New Button With _
{.Parent = Me, .Text = "Abbruch der Suche", _
.Width = 145, .Top = 100, .Left = 155, .Enabled = False}
Dim lboFiles As New ListBox With _
{.Parent = Me, .Width = 300, .Top = 150, .Height = 200, _
.HorizontalScrollbar = True}
Private Sub ff_Aborted(sender As Object, _
e As System.EventArgs) Handles ff.Aborted
MsgBox("Die Datei-Suche ist abgebrochen worden")
Me.Text = "Dateisuche"
enabler(True)
End Sub
Private Sub ff_Finished(sender As Object, _
e As FindFiles.FindFilesEventArgs) Handles ff.Finished
MsgBox("Die Datei-Suche ist beendet" & vbCrLf & _
"Gefundene Dateien: " & e.FilesFound.ToString)
Me.Text = "Dateisuche"
lboFiles.DataSource = Nothing
lboFiles.DataSource = ff.FilesFound
enabler(True)
End Sub
Private Sub ff_Progress(sender As Object, _
e As FindFiles.FindFilesEventArgs) Handles ff.Progress
Me.Text = _
"Suche läuft - Gefundene Dateien: " & e.FilesFound.ToString
End Sub
Private Sub btnFolder_Click(sender As Object, _
e As System.EventArgs) Handles btnFolder.Click
If fbd.ShowDialog() = _
Windows.Forms.DialogResult.Cancel Then Exit Sub
btnFolder.Text = fbd.SelectedPath
btnStart.Enabled = True
End Sub
Private Sub btnStart_Click(sender As Object, _
e As System.EventArgs) Handles btnStart.Click
ff.BaseDirectory = btnFolder.Text
ff.FilePattern = txtPattern.Text
If Not ff.Find() Then
MsgBox("Suche kann nicht gestartet werden")
Else
enabler(False)
End If
End Sub
Private Sub btnCancel_Click(sender As Object, _
e As System.EventArgs) Handles btnCancel.Click
ff.Abort()
End Sub
Private Sub enabler(ByVal ok As Boolean)
btnFolder.Enabled = ok
btnStart.Enabled = ok
txtPattern.Enabled = ok
lboFiles.Enabled = ok
btnCancel.Enabled = Not ok
End Sub
Private Sub frmFindFiles_Load(sender As System.Object, _
e As System.EventArgs) Handles MyBase.Load
Me.Text = "Dateisuche"
Me.Width = 310
Me.Height = 380
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.Fixed3D
Me.MaximizeBox = False
End Sub
End Class
Beitrag wurde zuletzt am 17.04.15 um 09:45:45 editiert. |