0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

覚書 VB TreeViewでエクスプローラー風ビューアを作ろうと思う(その1)

Posted at

昔からオペレーションや手順を覚えるのが苦手で
メモ鉄などを使っていたが、開発も止まってエクスプローラーを使っていたけどオペレーション覚えない他人に聞かれること多数。
結局いない間にPCいじられて「手が滑った」らしく該当の手順を探す作業が発生。
メモ鉄のようなエディタではなくてオペレーションに特化したビューアを作ってみたくなりました。
C#で似たようなことをしている人が多いのですが、VBで気軽にやってみたいと思いググるとだいぶ過去に似たような質問をしているスレッドがあり、サンプルが載っていたので自分なりに作っていきたいと思います。
Form1とTreeView1をForm1デザインで張り付け、
下記のサンプルプログラムを解釈しながら改変しました。

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
		'作成されたexeのフォルダを指定(アクセス権がないディレクトリを指定するとエラーになる)
        Dim s As String = ".\"
        trViewSet(s, TreeView1.Nodes.Add(s))

    End Sub


    'treeView表示項目セット
    Private Sub trViewSet(ByVal path As String, ByVal node As TreeNode)
        'DirectoryInfoはSystem.IOの部品であるためInport System.IOを付けるとよいが学習のためにいちいち書く

        Dim folder As System.IO.DirectoryInfo = New System.IO.DirectoryInfo(path)
        Dim subfolders() As System.IO.DirectoryInfo = folder.GetDirectories()
        Dim subfolder As System.IO.DirectoryInfo

		'サブフォルダやフォルダは以下のファイルをTreeViewに追加
        For Each subfolder In subfolders
            Dim subnode As TreeNode = node.Nodes.Add(subfolder.Name)
            trViewSet(subfolder.FullName, subnode)
        Next
        Dim files() As System.IO.FileInfo = folder.GetFiles()
        Dim file As System.IO.FileInfo
        For Each file In files
            node.Nodes.Add(file.Name)
        Next
    End Sub

	'TreeViewのノードをクリックするとメッセージボックスが表示される
    Private Sub TreeView1_AfterSelect(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect
        MsgBox(e.Node.FullPath)
    End Sub


End Class

ファイル名別にアイコンを変えたりファイル名順にソートしたりやることはいろいろあるけど今日はここまでにします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?