VB 的树形列表框怎样添加节点和命令?

VB 的树形列表框怎样添加节点和命令?,第1张

'vb6.0,添加部件 Windows comm control 6.0,form1上添加treeview

Private Sub Form_Load()

TreeView1.Nodes.Add , , "root ", "root "

TreeView1.Nodes.Add "root ", tvwChild, , "child1 "

TreeView1.Nodes.Add "root ", tvwChild, , "child2 "

TreeView1.Nodes("root ").Expanded = True'展开

End Sub

1.在资源编辑器中右键单击你的树形控件,事件,然后选择NM_RCLICK,双击它,确定,就添加了树形控件的消息响应,然后找到对应的消息响应处理函数,如下是我的例子:

void

CViewTreeBase::OnNMRClick(NMHDR

*pNMHDR,

LRESULT

*pResult)

{

UNREFERENCED_PARAMETER(pNMHDR)

CPoint

point

GetCursorPos(&point)

ScreenToClient(&point)

UINT

uFlags

=

0

HTREEITEM

click

=

HitTest(point,

&uFlags)

//click和uFlags能定位你单击的具体项目,参看参考资料。

//在这里你可以进行你的添加节点的 *** 作,相信你会天际节点。如果需要添加菜单,你可以搜搜右键添加菜单,然后在这里d出菜单。具体的,看你需求,再做解答。

}

2.也可以自己派生一个类,继承于CTreeCtr,从类向导中进行添加1中消息,如上的例子是我派生的类。

右键菜单: 选中子节点全被选中)... layui里面没有给到右键菜单,所以,我自己把源码改了一下: 找到layui文件夹里modules下的tree.js 用以上代码,替换以下代码 当i.which等于3,是右键事件,等于1是左键。 所以,左键响应的事件,还是可以在tree的属性设置的时候的click属性里写自己的左键事件,如 tree.render({ elem: '#test1' ,click: function(obj){ console.log(obj.data)//得到当前点击的节点数据 console.log(obj.state)//得到当前节点的展开状态:open、close、normal console.log(obj.elem)//得到当前节点元素 console.log(obj.data.children)//当前节点下是否有子节点 } })右键就在上面选中代码里if分支,i.swich=3的地方搞事情,菜单的话,就是自己写个菜单,然后根据鼠标点击位置显示和隐藏就好了。 二、父节点选中子节点全被选中 一个树形组件,比如到权限管理的时候,回显的时候,父节点被设置为选中,所有改节点的子节点都被设置为选中,但我们需要的可能是这 样的回显: 1、所以,要么,只获取所有已经拥有的权限的最末端的id,然后用 tree.setChecked('demoId', 1)//单个勾选 id 为 1 的节点 tree.setChecked('demoId', [2, 3])//批量勾选 id 为 2、3 的节点 去设置,这样,当子节点被一个选中,改节点的父节点也会被设置为选中,就可以得到需要的样子。 2、不然,就要把数据按照需要的样子做好,再重载实例 tree.reload('demoId', { //新的参数 data:newdata})数据怎么做呢?

查看更多


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11775230.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存