我用的是ZK CE-9.0.0。
我有一个 combobox
我需要以程序方式打开它,在点击 OK
的按钮 Messagebox
. 因此,我已经实施了一个 Listener
的点击事件。OK
按钮。在点击事件里面,我打开了 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
是关闭的& 它导致 combobox
也要关闭。
请看一下 这个 fiddler,以便更好地理解。请选择ZK版本为9.0.0再运行。
谁能帮我解决这个问题?
谢谢了。
RAS
你是对的,主要的问题来自于按钮在组合框的动画后收回焦点,焦点是由关闭的Messagebox反馈给按钮的。
处理这个问题的一个简单的方法是使用一个 回声 以等待消息框真正关闭后再发送打开动作到组合框中。https:/zkfiddle.orgsample1rkm5d6-Combobox-gets-closed-onMessageBox-close#source-2。