从图像中可以看出,每当初始化用户窗体时,都会首先突出显示一个节点。但是,与此有关的问题是NodeClick
事件不会触发。这会使用户对按钮不起作用的原因感到困惑。据我所知,也没有SelectedNode
事件之类的东西。
用户窗体初始化代码:
Private Sub UserForm_Initialize()
'Insert the Chart of Accounts Categories (hard coded) then child nodes are the input accounts
TreeView1.Nodes.Add Key:="CURRENT ASSET", Text:="CURRENT ASSET"
TreeView1.Nodes.Add Key:="CURRENT LIABILITY", Text:="CURRENT LIABILITY"
TreeView1.Nodes.Add Key:="LONG TERM LIABILITY", Text:="LONG TERM LIABILITY"
TreeView1.Nodes.Add Key:="FIXED ASSET", Text:="FIXED ASSET"
TreeView1.Nodes.Add Key:="EQUITY", Text:="EQUITY"
'Populates the TreeView from previously stored data
Total_rows_Nodes = Worksheets("Node Details").Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To Total_rows_Nodes
TreeView1.Nodes.Add Worksheets("Node Details").Cells(i, 1).Text, tvwChild, Worksheets("Node Details").Cells(i, 2).Value, Worksheets("Node Details").Cells(i, 2).Text
Next i
End Sub
答案 0 :(得分:1)
您可以将TreeView1.SelectedItem = Nothing
设置为“取消选择”任何内容。但这在Initialize
事件中执行此操作没有帮助,因为在显示表单时,如果未选择任何内容,则会自动选择第一项。
因此,您必须将该部分移到以后。把它放到Activate
事件中对我有用:
Private Sub UserForm_Activate()
Set TreeView1.SelectedItem = Nothing
End Sub