主题:请教 gird 中 右键怎么用
xm7050432
[专家分:180] 发布于 2009-01-05 17:34:00
各位老师好,
比如我做了一个表单,主要是用来查询用,里面有一个gird用来显示查询的结果,
如果我选中某条结果,想通过点击鼠标右键直接打开一个新的表单,这个表单可以看清这条结果的详细信息。
我现在是暂时选中结果后,再点击另一个按钮,感觉比较麻烦。
按钮的代码大概如下:
SELECT lsjfcx $$ lsjfcx是grid的数据源,也是一个临时表。
jfdh=ALLTRIM(单号) $$ 单号是其中一个字段
SELECT XXX
LOCATE for 单号=jfdh
jjghjfd=RECNO()
DO form xxxxx.scx
请问如果想通过直接点击右键,难后选择打开xxxxx.scx.可否实现。谢谢。
回复列表 (共14个回复)
沙发
xm7050432 [专家分:180] 发布于 2009-01-06 09:31:00
请各位老师抽空指教下,哪里有写不清楚的地方,我再补充。谢谢。
板凳
moz [专家分:37620] 发布于 2009-01-07 10:53:00
右键有事件可用
.RightClick
如果要菜单方式,可以在右键事件里运行事先写好的右键菜单
3 楼
xm7050432 [专家分:180] 发布于 2009-01-08 08:31:00
moz老师,
谢谢你抽空回复,我知道应该在rightclick里写,我的希望就是有弹出菜单,就是类是我们正常右键的时候,会出现复制,粘贴等。 我把我原来的代码复制进rightclick但是没有反应,也有研究了右键出现复制,粘贴剪切的代码,但是还是不明白。
能不能麻烦moz老师帮我讲解写。谢谢。
4 楼
fyyylyl [专家分:8550] 发布于 2009-01-08 11:14:00
将你按钮中的代码写入某一列的Text控件的rightclick事件中。
如界面允许(或用页框),先将两表关联不就能同步显示了吗?也少了再打开新表单的麻烦。
5 楼
xm7050432 [专家分:180] 发布于 2009-01-08 17:30:00
[quote]将你按钮中的代码写入某一列的Text控件的rightclick事件中。
如界面允许(或用页框),先将两表关联不就能同步显示了吗?也少了再打开新表单的麻烦。[/quote]
谢谢您的回复,功能大概是实现了,但是一个问题,比如我写在第三列,只能在第三列右击才有效,而且不会出现选择的对话框,直接就弹出界面,怪怪的。要怎么改进呢。
我想要的效果是不管再哪列都可以右键单机(一列一列+太麻烦了,),然后出现一个选择,再点击才会弹出界面。谢谢。
6 楼
moz [专家分:37620] 发布于 2009-01-08 19:09:00
grid1.RightClick
调用菜单是什么命令来着?我忘了,查一查帮助文档吧。
菜单使用快捷菜单,跟普通菜单的写作方法是一样的。
7 楼
xm7050432 [专家分:180] 发布于 2009-01-09 17:18:00
[quote]grid1.RightClick
调用菜单是什么命令来着?我忘了,查一查帮助文档吧。
菜单使用快捷菜单,跟普通菜单的写作方法是一样的。[/quote]
谢谢您的回复,你的意思是写在grid.rightclick.里就可以随便位置点击弹出选项框了吗? 我试了没反应。不怕您见笑。
菜单使用快捷菜单,跟普通菜单的写作方法是一样的。这句话我没怎么看明白,不好意思啊?能讲解下吗?
8 楼
cbl518 [专家分:57140] 发布于 2009-01-09 23:23:00
在表格控件的 init 事件写入:
FOR each o1 in this.Objects
BINDEVENT(o1.text1,"RightClick",this, "RightClick")
ENDFOR
9 楼
cbl518 [专家分:57140] 发布于 2009-01-09 23:27:00
在thisform.grid1.rightclick.里:
写入你的弹出菜单代码。
随便位置点击,就可以弹出菜单选项框了。
祝你好运!!!
10 楼
xm7050432 [专家分:180] 发布于 2009-01-12 11:05:00
[quote]在表格控件的 init 事件写入:
FOR each o1 in this.Objects
BINDEVENT(o1.text1,"RightClick",this, "RightClick")
ENDFOR[/quote]
谢谢您的回复,最近一直没机会试,试完我回来报告情况。
我有个想法,是不是点击grid的表头排序,也可以按照类似处理,省得每个表头都去写代码。不知道行不行的通。
我来回复