Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共11 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:当树的结点较多时,在树上双击时,当前结点会乱跑?

1楼
cpayinyuan 发表于:2010/8/5 12:41:00

   如题,当窗口中 的 树的某节点的子节点较多时,在节点上双击,当前节点会自己变化,不知怎么回事?

   如事例(开发版的),表A的窗口1,树的事件代码很简单,在某节点上双击时,提示框显示出当前节点的名称(e.Node.name),在其他节点上双击能正常显示,但当双击“河南”时(这个节点的子节点较多),显示的节点名称乱七八糟,莫名其妙!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:树结点乱跑的事例.rar

2楼
狐狸爸爸 发表于:2010/8/5 12:46:00
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
MessageBox.Show(trv.SelectedNode.Text)
3楼
cpayinyuan 发表于:2010/8/5 12:50:00

贺老师怎么没有回答我事例中的问题?帮助中的内容如下:

 

NodeMouseDoubleClick

用鼠标双击节点后执行。

e参数属性

Form:    触发事件的窗口
Sender:  触发事件的目录树
Node:    双击的节点

 

 

我用e.Node获得双击的节点,难道不对吗?

4楼
狐狸爸爸 发表于:2010/8/5 15:00:00

帮助没有错的,你也没有错。

这个问题是.net framework的bug,只能想办法绕开它。

5楼
cpayinyuan 发表于:2010/8/13 14:24:00
以下是引用狐狸爸爸在2010-8-5 12:46:00的发言:
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
MessageBox.Show(trv.SelectedNode.Text)

       经认真测试,如果树的层次结构比较复杂,尤其是同时展开的节点(子节点)较多时,用SelectedNode同样不能正常使用!我的项目中的设计是,当在某节点上双击时,把选择的当前节点作为条件在表中筛选或查询,现在无论用e.Node.Text还是用e.Sender.SelectedNode.Text,在前述情况下都不能正常筛选或查询!

    这么一个小问题,难道没有办法了??????

6楼
狐狸爸爸 发表于:2010/8/13 15:42:00

用单击吧

7楼
cpayinyuan 发表于:2010/8/13 16:28:00
以下是引用狐狸爸爸在2010-8-13 15:42:00的发言:

用单击吧

大部分同类的软件都是用双击,所以用单击不符合用户的习惯。

 

希望贺老师再想想办法啊!

8楼
cpayinyuan 发表于:2010/8/14 11:27:00
以下是引用cpayinyuan在2010-8-13 16:28:00的发言:

大部分同类的软件都是用双击,所以用单击不符合用户的习惯。

 

希望贺老师再想想办法啊!

9楼
狐狸爸爸 发表于:2010/8/14 11:39:00

我没有办法的。

 

.net的bug很多,有的我可以想办法绕过去,有的我也束手无策,我也就是个二道贩子而已,很多东西我无法决定。

 

你可以在单击事件中用一个Static变量记录上次单击的时间,如果时间间隔小于0.5秒(间隔自己决定),就执行动作,来人为地模拟双击:

 

Static lt As Date

If (Date.Now-lt).TotalSeconds < 0.5 Then

   执行代码

End If

lt = Date.Now()

 

 

10楼
cpayinyuan 发表于:2010/8/14 12:10:00
以下是引用狐狸爸爸在2010-8-14 11:39:00的发言:

我没有办法的。

 

.net的bug很多,有的我可以想办法绕过去,有的我也束手无策,我也就是个二道贩子而已,很多东西我无法决定。

 

你可以在单击事件中用一个Static变量记录上次单击的时间,如果时间间隔小于0.5秒(间隔自己决定),就执行动作,来人为地模拟双击:

 

Static lt As Date

If (Date.Now-lt).TotalSeconds < 0.5 Then

   执行代码

End If

lt = Date.Now()

 

 

谢谢,我试试!

 

另外,我不太明白,是 .net2.0有这个bug,还是任何版本都有?难道微软发现了bug就不再改进吗?

[此贴子已经被作者于2010-8-14 12:38:20编辑过]
共11 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02734 s, 3 queries.