Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
如题,当窗口中 的 树的某节点的子节点较多时,在节点上双击,当前节点会自己变化,不知怎么回事?
如事例(开发版的),表A的窗口1,树的事件代码很简单,在某节点上双击时,提示框显示出当前节点的名称(e.Node.name),在其他节点上双击能正常显示,但当双击“河南”时(这个节点的子节点较多),显示的节点名称乱七八糟,莫名其妙!
下载信息 [文件大小: 下载次数: ] | |
![]() |
贺老师怎么没有回答我事例中的问题?帮助中的内容如下:
NodeMouseDoubleClick
用鼠标双击节点后执行。
e参数属性
Form: 触发事件的窗口
Sender: 触发事件的目录树
Node: 双击的节点
我用e.Node获得双击的节点,难道不对吗?
帮助没有错的,你也没有错。
这个问题是.net framework的bug,只能想办法绕开它。
经认真测试,如果树的层次结构比较复杂,尤其是同时展开的节点(子节点)较多时,用SelectedNode同样不能正常使用!我的项目中的设计是,当在某节点上双击时,把选择的当前节点作为条件在表中筛选或查询,现在无论用e.Node.Text还是用e.Sender.SelectedNode.Text,在前述情况下都不能正常筛选或查询!
这么一个小问题,难道没有办法了??????
用单击吧
用单击吧
大部分同类的软件都是用双击,所以用单击不符合用户的习惯。
希望贺老师再想想办法啊!
大部分同类的软件都是用双击,所以用单击不符合用户的习惯。
希望贺老师再想想办法啊!
我没有办法的。
.net的bug很多,有的我可以想办法绕过去,有的我也束手无策,我也就是个二道贩子而已,很多东西我无法决定。
你可以在单击事件中用一个Static变量记录上次单击的时间,如果时间间隔小于0.5秒(间隔自己决定),就执行动作,来人为地模拟双击:
Static lt As Date
If (Date.Now-lt).TotalSeconds < 0.5 Then
执行代码
End If
lt = Date.Now()
我没有办法的。
.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就不再改进吗?