treeview控件的问题 这个控件应该有一个“Right Click Select”选项,可我的VFP中的TreeView属性卡中不能显示全部的属性(因为是中文Win2000的缘故)。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 liujianjun_ (流星尔), 你能看到TreeView属性卡全部的属性吗? 我用tab切换焦点可以知道露一点的属性有一个,完全没有露出的属性还有一个,都不知道名称。以前用英文win95下看过,现在已经忘了。主菜单访问表单中的控件可以用下面的形式:? application->forms(1)->text4->value? application->forms('form1')->text4->value 1.在nodeclick里面判断右键就不可以吗?2.treeview.node.child.count 第二个问题: 用node.CHILDREN>0来判断是否有子节点 按钮“删除节点”的CLICK代码: O = THISFORM.OLETREE IF .NOT. ISNULL(O.SELECTEDITEM) &&先判断是否选中了节点 if o.SELECTEDITEM.Children>0 &&再判断其下是否有子节点 O.NODES.REMOVE(O.SELECTEDITEM.KEY) endif ENDIF 第一个问题在关注之中 上面的代码搞反了,应该是: O = THISFORM.OLETREE IF .NOT. ISNULL(O.SELECTEDITEM) &&先判断是否选中了节点 if o.SELECTEDITEM.Children>0 &&再判断其下是否有子节点 =messagebox('有子节点,请先删除子节点',64,'') return else O.NODES.REMOVE(O.SELECTEDITEM.KEY) endif ENDIF 第一个问题:用treeview1.mousedown事件可加以解决,LPARAMETERS button, shift, x, yif button=1 wait wind 'button=1,用户按了鼠标左键'else wait wind 'button=2, 用户按了鼠标右键' * 调用快捷菜单(执行操作时也要先判断是否选中了节点) **********下面的代码应在菜单处理********** * IF .NOT. ISNULL(THISFORM.TREEVIEW1.SELECTEDITEM) &&先判断是否选中了节点 * * 相应的处理语句(增加子节点或删除子节点) * ELSE * =MESSAGEBOX('请先选中一个节点再操作',64,'') * ENDIF ******************************************endif 第一个问题,我也是用mousedown事件来处理的。但发现直接在结点点右键的时候,并没有跳到当前结点上。它触发的实际上是整个treeview控件的该事件。 第一个问题: 在mousedown event代码中要首先加上this.click,可保持原来按鼠标左键的功能不变,即:LPARAMETERS button, shift, x, ythis.clickshowtext=iif(IsNull(this.selecteditem),'没有选择节点',this.selecteditem.text)if button=1 wait wind 'button=1,用户按了鼠标左键:'+showtext nowaitelse wait wind 'button=2, 用户按了鼠标右键:'+showtext nowait * 调用快捷菜单(执行操作时也要先判断是否选中了节点)endif 从上面的测试可以看出,确实点右键时,选定的键值(selecteditem)未改变,为了修正为一错误,我用这样的方法:1、在表单的Load代码段中加上 publlic m_mousebutton2、在treeview控件的mousedown代码段加上 m_mousebutton=button3、在treeview控件的Nodeclick代码段中对鼠标按键进行判断,如下代码: showtext=iif(IsNull(this.selecteditem),'没有选择节点',this.selecteditem.text) if m_mousebutton=1 wait window '用户按了鼠标左键:'+showtext nowait else wait window '用户按了鼠标右键:'+showtext nowait * 调用快捷菜单(执行操作时也要先判断是否选中了节点) endif经测试,这样处理很正常。 vs2010自带的SQL2008怎么以用户名密码的方式连接呢? 关于动态SQL的问题。明明定义了变量却提示没有定义。 讨论一下 哪条分页效率比较高 求一条判断更新语句, 谢谢 基础不牢,忘光了,问一个查询问题!简单,送分,快来抢,谢谢 ddl 语言 with as 与join full 为什么表格不存在呢 如何将一个表中的数据按id插入另一个库的表中?急!!!在线等答案!!! ado.net采用断开式连接,怎样控制锁定问题? sqlserver 和 exchange server 的问题 如何把sqlserver建表代码改成mysql或者oracle的 大神帮帮忙
? application->forms('form1')->text4->value
2.treeview.node.child.count
按钮“删除节点”的CLICK代码:
O = THISFORM.OLETREE
IF .NOT. ISNULL(O.SELECTEDITEM) &&先判断是否选中了节点
if o.SELECTEDITEM.Children>0 &&再判断其下是否有子节点
O.NODES.REMOVE(O.SELECTEDITEM.KEY)
endif
ENDIF 第一个问题在关注之中
O = THISFORM.OLETREE
IF .NOT. ISNULL(O.SELECTEDITEM) &&先判断是否选中了节点
if o.SELECTEDITEM.Children>0 &&再判断其下是否有子节点
=messagebox('有子节点,请先删除子节点',64,'')
return
else
O.NODES.REMOVE(O.SELECTEDITEM.KEY)
endif
ENDIF
if button=1
wait wind 'button=1,用户按了鼠标左键'
else
wait wind 'button=2, 用户按了鼠标右键'
* 调用快捷菜单(执行操作时也要先判断是否选中了节点)
**********下面的代码应在菜单处理**********
* IF .NOT. ISNULL(THISFORM.TREEVIEW1.SELECTEDITEM) &&先判断是否选中了节点
* * 相应的处理语句(增加子节点或删除子节点)
* ELSE
* =MESSAGEBOX('请先选中一个节点再操作',64,'')
* ENDIF
******************************************
endif
this.click
showtext=iif(IsNull(this.selecteditem),'没有选择节点',this.selecteditem.text)
if button=1
wait wind 'button=1,用户按了鼠标左键:'+showtext nowait
else
wait wind 'button=2, 用户按了鼠标右键:'+showtext nowait
* 调用快捷菜单(执行操作时也要先判断是否选中了节点)
endif
1、在表单的Load代码段中加上 publlic m_mousebutton
2、在treeview控件的mousedown代码段加上 m_mousebutton=button
3、在treeview控件的Nodeclick代码段中对鼠标按键进行判断,如下代码:
showtext=iif(IsNull(this.selecteditem),'没有选择节点',this.selecteditem.text)
if m_mousebutton=1
wait window '用户按了鼠标左键:'+showtext nowait
else
wait window '用户按了鼠标右键:'+showtext nowait
* 调用快捷菜单(执行操作时也要先判断是否选中了节点)
endif经测试,这样处理很正常。