欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

关于右键菜单的写法解决思路

更新时间: 2014-01-05 02:26:44 责任编辑: Author_N1

 

关于右键菜单的写法
关于右键菜单的使用有点疑问
我想在gridde TEXT1中用右键激活一个菜单,多所点击的栏位进行操作
代码如下
绑定事件 RIGHTCLICK 到 thisform.kqk_rightclick:
=BINDEVENT(ThisForm.Pageframe1.Page2.Grid1.Column4.text1,"rightclick",this,"kqk_rightclick" )

thisform.kqk_rightclick的代码

DEFINE POPUP kqk_right_pop RELATIVE FROM MROW(),MCOL() TITLE "请选择"
DEFINE BAR 1 OF kqk_right_pop prompt "直接补签此栏位" 
DEFINE BAR 2 OF kqk_right_pop prompt "加入补签申请表" 
DEFINE BAR 3 OF kqk_right_pop prompt "清除补签数据" 
DEFINE BAR 4 OF kqk_right_pop prompt "清除签卡异常状态<迟到、早退>"
DEFINE BAR 5 OF kqk_right_pop prompt "恢复签卡异常状态<迟到、早退>"

ON SELECTION POPUP kqk_right_pop  ;
wait window nowait BAR()  &&&这里好像只能输入一行命令
ACTIVATE POPUP kqk_right_pop AT MROW(),MCOL()

得到的效果如下图


现在的问题是
1 这个效果很难看, 标题的字体如何更改
2.点选一个选项后, 菜单不会消失. 还在屏幕上,要在菜单外 点击2下才会消失
3. ON SELECTION POPUP 后面好像只能输入一行命令 不支持代码块, 处理代码应该写在 哪里(不使用外部PRG的情况下, 不想在这个表单文件以外在附加一PRG过程).
尝试过 如下方法
第一种
 ON SELECTION POPUP kqk_right_pop  ;
 DO choice with bar()
....

proc choice
lpara  _cur_sele
do case
   case _cur_sele=1
   .....
case _cur_sele=12
....
endcase 

系统提示, 不能在方法里定义过程
第二种
thisform. choice with bar()
系统提示, 不能无效的参数传递
第三种
DO choice with bar()
编写 choice.prg 处理 
这倒是可以使用但是, 到了PRG 里面, 表单的所有属性和方法都无法引用了....

请各位指点

--参考方法--
请参考:
表单右键菜单例子代码
*-------------------

*--表单的Init事件代码:

Define Popup shortcut shortcut Relative From Mrow(),Mcol()
Define Bar 1 Of shortcut Prompt "    <关闭菜单>    "
Define Bar 2 Of shortcut Prompt "\-"
Define Bar 3 Of shortcut Prompt "复制      (\<C)"
Define Bar 4 Of shortcut Prompt "粘贴      (\<P)"
Define Bar 5 Of shortcut Prompt "\-"
Define Bar 6 Of shortcut Prompt "操作A     (\<A)"
Define Bar 7 Of shortcut Prompt "\-"
Define Bar 8 Of shortcut Prompt "操作B     (\<B)"
*如果不够用,照着加几个即可。

On Selection Bar 3 Of shortcut MyForm.CMD_MenuClick.Click(1)
On Selection Bar 4 Of shortcut MyForm.CMD_MenuClick.Click(2)
On Selection Bar 6 Of shortcut MyForm.CMD_MenuClick.Click(3)
On Selection Bar 8 Of shortcut MyForm.CMD_MenuClick.Click(4)


*--表单的RightClick事件代码:
Activate Popup shortcut At Mrow(),Mcol()


*--然后在表单上建一个Command按钮,其Visible设为.F.,其Click事件代码:
Parameters tnMenuID
Do Case
Case tnMenuID=1
Messagebox("你的相应代码1...",64,"信息提示")
Case tnMenuID=2
Messagebox("你的相应代码2...",64,"信息提示")
Case tnMenuID=3
Messagebox("你的相应代码3...",64,"信息提示")
Case tnMenuID=4
Messagebox("你的相应代码4...",64,"信息提示")
Endcase


*--最后运行你的表单时:
Public MyForm
Do Form 你的表单文件名.Scx Name MyForm

Do Form 你的表单文件名.Scx Name MyForm Linked

*--表单运行后,在表单上右单击鼠标即可显示菜单。

上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:26:44
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/9838/
本文WWW.DOC100.NET DOC100.NET版权所有。