我现在作通讯录呢,要实现类似outlook左侧菜单控件单要可以有树型结构可产生新节点,有个那位有源代码或控件的啊 ,急!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
解决方案 »
- VB自带打包工具
- 请教:用VB调用一个.py程序,需要怎么处理?用shell直接调用貌似不行,请大侠指教。
- 请教关于ADO连接的问题,高手请帮忙看看!急啊!
- 简单问题100分相送:点击窗口右上角的关闭按键触发的是什么事件?
- 请问 怎么限制 在文本框中 只能输入数字?而不能输入字母之类的
- 关于数据库二进制数据的读写问题(在线等待)
- 怪事呀!!!我添加的明明是我以前做好的窗体,可是它为什么就是添加到模块中去呢???
- 用vb怎么进直线插补
- 用Crystal Reports 做报表,应该怎样完成
- 请教各位:sql客房端可运行在 486 机上吗?
- Activereport问题
- 请问dtpicker时间控件中,如何设置输入问题?
MSDN里有很多例子啊.
例子,可以看看。
TreeView的基本操作
1.增加顶节点
2.增加分节点
3.删除所选节点
4.预防错误的发生
5.补充说明:
6.添加弹出式菜单(有点难)
7.改变背景颜色(调用 API 函数)1.增加顶节点
TreeView1.Nodes.Add , tvwLast, , "顶节点" '注:基本的语法看Cmctl198.CHM这里就不说了2.增加分节点
TreeView1.Nodes.Add 1, tvwChild, , "分节点" '1表示一个已经存在的Node对象的索引号,这就是指在索引号为1的Node对象下新建一个分节点,可用下列语句取得你所点击的Node对象的索引号 :
Private Sub TreeView1_Click() ‘点击TreeView时发生
index = TreeView1.SelectedItem.index
End Sub
下面这句就是在你任意点击的Node对象下建立一个分节点&127;
TreeView1.Nodes.Add index, tvwChild, , "分节点"3.删除节点
TreeView1.Nodes.Remove index '删除你所点击的Node对象4.预防错误的发生
(1)没有任何Node对象了,你仍然再删除节点,解决方法如下:
On Error GoTo err
TreeView1.Nodes.Remove index '删除节点
err:
Exit Sub
(2)没有任何Node对象时,你建立分节点,解决方法如下:
On Error GoTo err
TreeView1.Nodes.Add index, tvwChild, , "分节点" '增加顶节点
Exit Sub
err:
TreeView1.Nodes.Add , tvwLast, , "顶节点 " '增加顶节点5.补充说明:
如要显示图像,请加载ImageList控件与TreeView邦定,然后使用如下语句:
TreeView1.Nodes.Add , tvwLast, , "顶节点",1 '这里的1就是ImageList控件的图像索引
最好把TreeView的Style属性设置为7,LineStylen属性设置为1会比较好看些。Hi,如果你把上面的都搞清楚了,就可以学习一下下面的小技巧(有点难度哟)6.增加右键弹出式菜单
Private Sub TreeView1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)Dim nod As NodeIf Button = vbRightButton Then '检测鼠标的点击Set nod = TreeView1.HitTest(x, y) '返回你所点击的Node对象的坐标On Error GoTo EmptyNodenod.Selected = True ' 设置你所点击的Node对象被选中On Error GoTo 0'<<下面是你的自定义菜单>>Me.PopupMenu mnuPopUpEmptyNode:On Error GoTo 0End IfEnd Sub好了好了,看来你的基本操作都差不多会了,现在就来个难的(没有注释),请向下接着看:7.调用 API 函数改变 TreeView 的背景色
首先声明 API 函数
Private Declare Function SendMessage Lib "User32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As LongPrivate Declare Function GetWindowLong Lib "User32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As LongPrivate Declare Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPrivate Const GWL_STYLE = -16&
Private Const TVM_SETBKCOLOR = 4381&
Private Const TVM_GETBKCOLOR = 4383&
Private Const TVS_HASLINES = 2&下面就是改变背景色的代码
Dim lngStyle As Long
Call SendMessage(TreeView1.hWnd, TVM_SETBKCOLOR, 0, ByVal RGB(255, 0, 0))
'改变背景到红色lngStyle = GetWindowLong(TreeView1.hWnd, GWL_STYLE)
Call SetWindowLong(TreeView1.hWnd, GWL_STYLE, lngStyle - TVS_HASLINES)
Call SetWindowLong(TreeView1.hWnd, GWL_STYLE, lngStyle)
仿outlook的垂直工具条