投稿者 over50  (社会人) 投稿日時 2009/11/23 11:26:38
初めまして、こちらのサイトを利用して3ヶ月のROM専門の超初心者です。
よろしくお願いします。
50才を超えて、失業中なのをいいことにデーターベースを勉強しようとMS ACCESSを1段落して、VBを基礎からやってみようとこちらのサイトに来ました。
MS VS2008の評価版を使用しています。

題名の通り、初級講座の第31回ファイルシステムにあるファイル検索プログラムのことで教えていただきたいと書き込みました。
準備講座から始めてなんとか初級講座の第31回ファイルシステムまで来たので、今自分で出来る範囲でこのプログラムを自分で使いやすくカスタマイズしてみました。
と言っても、ドライブとデレクトリーの選択とタスクバーに表示。
プログレスバーと、検索ファイル数の表示だけですが。

如何せん、初めてなものでエラーも出ずに動作はしていますが皆さんに見ていただいて、おかしな点や間違い等、改良すべきところをご指摘いただければと思い投稿しました。
どんな点でも、これからの学習の指標になればと思います。
以下に、コードの全文を入れます。よろしくお願いします。

Public Class Form1

    Dim DD As String

    'プログレスバーの初期化
    Private Sub InitProgress()

        ToolStripProgressBar1.Minimum = 0

        ToolStripProgressBar1.Maximum = 100

        ToolStripProgressBar1.Value = 0
    End Sub

    Private Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

        Dim ofold As New IO.DirectoryInfo(DD)

        ListBox1.Items.Clear()

        If TextBox1.Text.Length = 0 Then
            Return
        End If

        Dim ofile As IO.FileInfo

        ListBox1.BeginUpdate()
        InitProgress()

        For Each ofile In ofold.GetFiles(TextBox1.Text & "*", IO.SearchOption.AllDirectories)

            Dim sfile As Integer = ListBox1.Items.Count

            ListBox1.Items.Add(ofile.FullName)
            ToolStripProgressBar1.Value = (sfile + 1) / (sfile + 1) * 100
            ToolStripStatusLabel1.Text = sfile + 1 & "項目"
            
        Next

        ListBox1.EndUpdate()
        ToolStripProgressBar1.Value = 0
    End Sub

    Private Sub ListBox1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.DoubleClick
        On Error Resume Next
        Process.Start(ListBox1.SelectedItem)
    End Sub

    Private Sub DriveListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DriveListBox1.SelectedIndexChanged
        DirListBox1.Path = DriveListBox1.Drive
        Call DirListBox1_SelectedIndexChanged(sender, Nothing)


    End Sub

    Private Sub DirListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DirListBox1.SelectedIndexChanged

        DD = DirListBox1.DirList(DirListBox1.DirListIndex)
         StatusBar1.Text = DD
    End Sub

End Class