Foxtable(狐表)用户栏目专家坐堂 → 当树的结点较多时,在树上双击时,当前结点会乱跑?


  共有12882人关注过本帖树形打印复制链接

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

帅哥哟,离线,有人找我吗?
cpayinyuan
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
当树的结点较多时,在树上双击时,当前结点会乱跑?  发帖心情 Post By:2010/8/5 12:41:00 [只看该作者]

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

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

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


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/8/5 12:46:00 [只看该作者]

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
MessageBox.Show(trv.SelectedNode.Text)

 回到顶部
帅哥哟,离线,有人找我吗?
cpayinyuan
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2010/8/5 12:50:00 [只看该作者]

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

 

NodeMouseDoubleClick

用鼠标双击节点后执行。

e参数属性

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

 

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/8/5 15:00:00 [只看该作者]

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

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


 回到顶部
帅哥哟,离线,有人找我吗?
cpayinyuan
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By: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楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/8/13 15:42:00 [只看该作者]

用单击吧


 回到顶部
帅哥哟,离线,有人找我吗?
cpayinyuan
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2010/8/13 16:28:00 [只看该作者]

以下是引用狐狸爸爸在2010-8-13 15:42:00的发言:

用单击吧

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

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
cpayinyuan
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2010/8/14 11:27:00 [只看该作者]

以下是引用cpayinyuan在2010-8-13 16:28:00的发言:

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

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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()

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
cpayinyuan
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By: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 1 2 下一页