首页 > 解决方案 > 如何使弹出菜单不可见?

问题描述

我正在使用 Progress 版本 11.6、appBuilder 和过程编辑器。

我正在创建一个基于另一个窗口的新窗口。另一个窗口包含一个浏览器,在该浏览器上附加了一个弹出菜单。
在我的副本中,我现在不想看到弹出菜单(换句话说,我想禁用它,以便用户看不到它)。

我试过把VISIBLEto FALSE, HIDDENto TRUE,但我总是遇到问题。

我的代码如下所示,有人知道如何使弹出菜单不可见吗?

DEFINE MENU popup-menu-browser
       MENU-ITEM m_Copy LABEL "Copy" ACCELERATOR "CTRL-C"
       MENU-ITEM m_Cut  LABEL "Cut"  ACCELERATOR "CTRL-X"
       ...

browser-object:POPUP-MENU = MENU popup-menu-browser:HANDLE

// not working:
MENU POPUP-MENU-browser:HIDDEN = TRUE.

标签: menuopenedgeprogress-4glpopupmenu

解决方案


您需要删除弹出菜单:

MENU POPUP-MENU-browser = ?.

或者让它不敏感:

MENU POPUP-MENU-browser:SENSITIVE = FALSE.

完整示例:

define browse br with size 40 by 10.

define menu mb
   menu-item mhide label "Hide"
   .

on choose of menu-item mhide do:
   browse br:popup-menu:sensitive = false.
end.   

on " " anywhere do:
   browse br:popup-menu:sensitive = true.
end.
   
browse br:popup-menu = menu mb:handle.

define frame fr 
   br
with 
   size 42 by 12 
   view-as dialog-box
   .

enable all with frame fr.
view frame fr.
wait-for close of frame fr.

请注意,在弹出菜单之间切换时,您将丢失复选框的值 - 请参阅知识库文章000054795


推荐阅读