急救!TreeView单击某节点后自动收起先前的节点怎么实现???

xflg2006 2009-11-09 02:27:34
我使用的TreeView只有两级节点,怎么实现单击节点后自动收起先前的节点?

菜鸟在此求代码……

谢谢!
...全文
112 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bdzwj 2009-11-09
  • 打赏
  • 举报
回复
老鸟就是老鸟
Tiger_Zhao 2009-11-09
  • 打赏
  • 举报
回复
用 Microsoft Windows Common Controls 6.0 版本的控件,直接设属性 SingleSel = True 就可以了。
bdzwj 2009-11-09
  • 打赏
  • 举报
回复
直接修改TREEVIEW控件的样式就可以。

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Const GWL_STYLE = (-16)
Private Const TVS_SINGLEEXPAND = &H400

Private Sub Command1_Click()
Dim lStyle As Long

lStyle = GetWindowLong(TreeView1.hwnd, GWL_STYLE)
lStyle = lStyle Or TVS_SINGLEEXPAND
SetWindowLong TreeView1.hwnd, GWL_STYLE, lStyle
End Sub

xflg2006 2009-11-09
  • 打赏
  • 举报
回复
请大哥说详细一点!
jhone99 2009-11-09
  • 打赏
  • 举报
回复
也可以每次点击时,记录该节点,点击其他节点时,则将该节点关闭(要判断是否是父节点)
jhone99 2009-11-09
  • 打赏
  • 举报
回复
写TreeView的BeforeExpand事件,就是在展开某节点前先折叠所有节点:tvw.CollapseAll()

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧