TreeViewのノード選択時のハイライト表示を変更したい

タグの編集
投稿者 バーガー  (社会人) 投稿日時 2012/1/29 22:30:29
フォーム上にTreeViewを配置してツリー表示を行っていて、
ノード選択時にハイライト表示になる時の文字色・背景色を変更したいのですが、
TreeNodeにはハイライト時の文字色・背景色のプロパティがないため、
何らかの方法でノード選択時のハイライト表示の変更方法があれば、
ぜひとも教えて頂きたいです。
まずは、ノード選択時も非選択時と同じ文字色・背景色にしたいです。
VBのバージョンは2008です。
投稿者 shu  (社会人) 投稿日時 2012/1/30 07:55:28
オーナードローが必要になるかと思います。

DrawMode = OwnerDrawAll

    Private Sub TreeView1_DrawNode(sender As Object, e As System.Windows.Forms.DrawTreeNodeEventArgs) Handles TreeView1.DrawNode
        Dim g = e.Graphics
        Dim bnd = e.Bounds

        g.FillRectangle(Brushes.Cyan, bnd)
        g.DrawString(e.Node.Text, TreeView1.Font, Brushes.DarkBlue, New Point(bnd.X + e.Node.Level * TreeView1.Indent, bnd.Y))

    End Sub

上記はとりあえず描画出来る程度です。文字幅に合わせた背景塗りとか+の表示など他にも描画が
必要です。用途に合わせその他のものも描画すると良いと思います。