Combobox 在 MessageBox 关闭时关闭 ZK

Combobox gets closed on MessageBox closure ZK

我正在使用 ZK CE-9.0.0。

我有一个 combobox,我需要通过单击 MessageboxOK 按钮以编程方式打开它。因此,我为 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 关闭并导致 combobox 也关闭。

请查看 this fiddler 以获得更好的理解。 请select之前运行ZK版本为9.0.0

谁能帮我解决这个问题?

谢谢,

RAS

您是对的,主要问题来自按钮在组合框动画之后检索焦点。 关闭的消息框将焦点返回给按钮 由于组合框失去焦点,组合弹出窗口也关闭了。

处理此问题的一种简洁方法是使用 echo event 等待消息框实际关闭,然后再将打开操作发送到组合框。 看这个 fiddle: https://zkfiddle.org/sample/1rkm5d/6-Combobox-gets-closed-on-MessageBox-close#source-2