Private Sub treePur_NodeCheck(ByVal Node As MSComctlLib.Node)
If isModify = False Then
Node.Checked = Not Node.Checked treePur.Refresh
End If
End Sub在执行这个事件时,控件上更新了,可不知为什么这个事件结束后就又还原成用护操作的状态.
习惯做法,用一个时钟控件Timer来控制,如下: Dim nd As Node Private Sub Form_Load() Dim nodX As Node TreeView1.Checkboxes = True Set nodX = TreeView1.Nodes.Add(, , "Root", "根节点") nodX.EnsureVisible Set nodX = TreeView1.Nodes.Add("Root", tvwChild, "First", "第一个节点") nodX.EnsureVisible Set nodX = TreeView1.Nodes.Add("Root", tvwChild, "Second", "第二个节点") nodX.EnsureVisible nodX.Checked = True Timer1.Enabled = False End SubPrivate Sub Timer1_Timer() Timer1.Enabled = False If Not IsNull(nd) Then nd.Checked = Not nd.Checked End SubPrivate Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node) Set nd = Node Timer1.Enabled = True End Sub
就是在NodeCheck事件中用Node.Checked = Not Node.Checked最方便~
怎么可能,你把Timer1的Interval属性0改成1再试试,看还有没有问题,呵呵
To: upsuper(究极人类) 就是在NodeCheck事件中用Node.Checked = Not Node.Checked最方便~-----这样做,当执行完NodeCheck事件后,还是还原了.To: myhgyp(也许是这样的,信不信由你) 怎么可能,你把Timer1的Interval属性0改成1再试试,看还有没有问题,呵呵 ----当然不是设为0的.问题不在这儿.
If isModify = False Then
Node.Checked = Not Node.Checked
treePur.Refresh
End If
End Sub在执行这个事件时,控件上更新了,可不知为什么这个事件结束后就又还原成用护操作的状态.
Dim nd As Node
Private Sub Form_Load()
Dim nodX As Node
TreeView1.Checkboxes = True
Set nodX = TreeView1.Nodes.Add(, , "Root", "根节点")
nodX.EnsureVisible
Set nodX = TreeView1.Nodes.Add("Root", tvwChild, "First", "第一个节点")
nodX.EnsureVisible
Set nodX = TreeView1.Nodes.Add("Root", tvwChild, "Second", "第二个节点")
nodX.EnsureVisible
nodX.Checked = True
Timer1.Enabled = False
End SubPrivate Sub Timer1_Timer()
Timer1.Enabled = False
If Not IsNull(nd) Then nd.Checked = Not nd.Checked
End SubPrivate Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)
Set nd = Node
Timer1.Enabled = True
End Sub
还有没有其它的办法,或者怎么修改一下?
就是在NodeCheck事件中用Node.Checked = Not Node.Checked最方便~-----这样做,当执行完NodeCheck事件后,还是还原了.To: myhgyp(也许是这样的,信不信由你)
怎么可能,你把Timer1的Interval属性0改成1再试试,看还有没有问题,呵呵
----当然不是设为0的.问题不在这儿.