Combobox在MessageBox闭包ZK上关闭

Combobox在MessageBox闭包ZK上关闭,combobox,messagebox,zk,Combobox,Messagebox,Zk,我正在使用ZKCE-9.0.0 我有一个组合框,单击消息框的确定按钮,我需要以编程方式打开它。因此,我为OK按钮的click事件实现了一个Listener。在click事件中,我使用以下代码打开组合框: EventListener<Messagebox.ClickEvent> clickListener = new EventListener<Messagebox.ClickEvent>() { @Override public void onEvent(

我正在使用ZKCE-9.0.0

我有一个
组合框
,单击
消息框
确定
按钮,我需要以编程方式打开它。因此,我为
OK
按钮的click事件实现了一个
Listener
。在click事件中,我使用以下代码打开
组合框

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);
EventListener clickListener=neweventlistener(){
@凌驾
public void onEvent(ClickEvent事件)引发异常{
mycombo.open();
}
};
Messagebox.Button[]buttons=新建Messagebox.Button[]{Messagebox.Button.OK};
显示(“Hi btn”,按钮,点击监听器);
现在我面临的问题是,
组合框打开了半秒钟。然后它会立即自动关闭

根据我的理解,这是因为
消息框
。单击事件执行完成后,
消息框
将关闭&它将导致组合框
也关闭

为了更好地理解,请看一下fiddler在运行ZK之前,请选择ZK版本为9.0.0。

有人能帮我吗

谢谢


RAS

您认为主要问题来自组合框动画后检索焦点的按钮是正确的。 焦点通过关闭的messagebox返回给按钮 由于组合框失去焦点,组合弹出窗口也会关闭

处理这个问题的一种干净方法是使用一个函数来等待messagebox实际关闭,然后再将open操作发送到combobox。 看这把小提琴: