Mini Kabibi Habibi
Imports Microsoft.VisualBasic
Imports System
Imports System.Collections
Imports System.ComponentModel
Imports System.Drawing
Imports System.Data
Imports System.Windows.Forms
Imports DevExpress.XtraTreeList.Nodes
Imports DevExpress.XtraTreeList.Columns
Namespace DevExpress.XtraBars.Demos.DockingDemo
Partial Public Class SolutionExplorer
Inherits System.Windows.Forms.UserControl
Public Sub New()
InitializeComponent()
InitTreeView(treeView1)
AddHandler treeView1.CustomDrawNodeCell, AddressOf treeView1_CustomDrawNodeCell
AddHandler treeView1.AfterCollapse, AddressOf treeView1_AfterCollapse
AddHandler treeView1.AfterExpand, AddressOf treeView1_AfterExpand
AddAllNodes(iShow.Down)
End Sub
Public Shared Sub InitTreeView(ByVal treeView As XtraTreeList.TreeList)
Dim column As TreeListColumn = treeView.Columns.Add()
column.Visible = True
treeView.OptionsView.ShowColumns = False
treeView.OptionsView.ShowIndicator = False
treeView.OptionsView.ShowVertLines = False
treeView.OptionsView.ShowHorzLines = False
treeView.OptionsBehavior.Editable = False
treeView.OptionsSelection.EnableAppearanceFocusedCell = False
End Sub
Private Sub treeView1_CustomDrawNodeCell(ByVal sender As Object, ByVal e As DevExpress.XtraTreeList.CustomDrawNodeCellEventArgs)
If e.Node.Id = 1 Then
e.Appearance.Font = New Font(e.Appearance.Font, FontStyle.Bold)
End If
End Sub
Private Sub SetIndex(ByVal node As TreeListNode, ByVal index As Integer, ByVal expand As Boolean)
Dim newIndex As Integer
newIndex = If(expand, index - 1, index + 1)
If node.StateImageIndex = index Then
node.StateImageIndex = newIndex
End If
End Sub
Private Sub treeView1_AfterExpand(ByVal sender As Object, ByVal e As DevExpress.XtraTreeList.NodeEventArgs)
SetIndex(e.Node, 7, True)
SetIndex(e.Node, 9, True)
End Sub
Private Sub treeView1_AfterCollapse(ByVal sender As Object, ByVal e As DevExpress.XtraTreeList.NodeEventArgs)
SetIndex(e.Node, 6, False)
SetIndex(e.Node, 8, False)
End Sub
Private Sub AddAllNodes(ByVal showAll As Boolean)
treeView1.Nodes.Clear()
treeView1.AppendNode(New Object() { "Solution 'DockingDemo' (1 project)" }, -1, -1, -1, 3)
treeView1.AppendNode(New Object() { "DockingDemo" }, -1, -1, -1, 4)
treeView1.AppendNode(New Object() { "References" }, 1, -1, -1, 7)
treeView1.AppendNode(New Object() { "DevExpress.Utils" }, 2, -1, -1, 5)
treeView1.AppendNode(New Object() { "DevExpress.XtraBars" }, 2, -1, -1, 5)
treeView1.AppendNode(New Object() { "DevExpress.XtraEditors" }, 2, -1, -1, 5)
treeView1.AppendNode(New Object() { "System" }, 2, -1, -1, 5)
treeView1.AppendNode(New Object() { "System.Drawing" }, 2, -1, -1, 5)
treeView1.AppendNode(New Object() { "System.Windows.Forms" }, 2, -1, -1, 5)
If showAll Then
treeView1.AppendNode(New Object() { "bin" }, 1, -1, -1, 9)
treeView1.AppendNode(New Object() { "Debug" }, 9, -1, -1, 9)
treeView1.AppendNode(New Object() { "Release" }, 9, -1, -1, 9)
treeView1.AppendNode(New Object() { "obj" }, 1, -1, -1, 9)
treeView1.AppendNode(New Object() { "Debug" }, 12, -1, -1, 9)
treeView1.AppendNode(New Object() { "Release" }, 12, -1, -1, 9)
End If
treeView1.AppendNode(New Object() { "AssemblyInfo.cs" }, 1, -1, -1, 10)
treeView1.AppendNode(New Object() { "frmMain.cs" }, 1, -1, -1, 11)
treeView1.AppendNode(New Object() { "SolutionExplorer.cs" }, 1, -1, -1, 12)
If showAll Then
treeView1.AppendNode(New Object() { "frmMain.resx" }, 16, -1, -1, 13)
treeView1.AppendNode(New Object() { "SolutionExplorer.resx" }, 17, -1, -1, 13)
End If
treeView1.ExpandAll()
End Sub
Private Sub iShow_ItemClick(ByVal sender As Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs) Handles iShow.ItemClick
AddAllNodes((CType(e.Item, DevExpress.XtraBars.BarButtonItem)).Down)
End Sub
Public Event PropertiesItemClick As EventHandler
Private Sub iProperties_ItemClick(ByVal sender As Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs) Handles iProperties.ItemClick
RaiseEvent PropertiesItemClick(sender, EventArgs.Empty)
End Sub
Public Event TreeViewItemClick As EventHandler
Private Sub treeView1_MouseDoubleClick(ByVal sender As Object, ByVal e As MouseEventArgs) Handles treeView1.MouseDoubleClick
RaiseEvent TreeViewItemClick(sender, EventArgs.Empty)
End Sub
End Class
End Namespace