我使用的是ZK CE-9.0.0。
我有一个combobox
,需要通过单击Messagebox
的OK
按钮以编程方式打开。因此,我实现了用于OK
按钮的点击事件的Listener
。在点击事件中,我使用以下代码打开combobox
:
EventListener<Messagebox.ClickEvent> clickListener = new EventListener<Messagebox.ClickEvent>() {
@Override
public void onEvent(ClickEvent event) throws Exception {
mycombo.open();
}
};
Messagebox.Button[] buttons = new Messagebox.Button[] {Messagebox.Button.OK};
Messagebox.show("Hi btn", buttons, clickListener);
现在我面临的问题是,combobox
打开半秒钟。然后它立即自动关闭。
据我所知,这是因为Messagebox
。一旦点击事件的执行完成,Messagebox
被关闭&它使CCD_ 10也被关闭。
请看一下这个小提琴手,以便更好地理解请在运行ZK之前将其版本选择为9.0.0。
有人能帮我吗?
谢谢,
RAS
您认为主要问题来自组合框动画后的按钮检索焦点,这是正确的。焦点通过关闭的消息框返回到按钮由于组合框焦点松动,组合弹出窗口也关闭。
处理此问题的一种干净方法是使用echo事件等待消息框实际关闭,然后再将打开操作发送到组合框。看看这把小提琴:https://zkfiddle.org/sample/1rkm5d/6-Combobox-gets-closed-on-MessageBox-close#source-2