2015-12-30 56 views
0

我在C++中看到了非標準行爲(與Word和Visual Studio 2013之類的工具相比) Windows窗體應用程序。我們使用Application :: Run,然後使用ShowDialog來顯示各種模式對話框。當其中一個模態對話框啓動後,我將另一個應用程序窗口部分放置在模態對話框的前面,我可以點擊部分模態對話框,並按照我的預期將它帶回前臺。Windows窗體 - 帶父窗口的ShowDialog - 爲什麼在父窗口最大化時不點擊父窗口激活對話框

但是,如果我改爲單擊主窗口的一部分(與Application :: Run一起顯示),模式對話框不會被帶到前臺。這使得很難將我的應用程序恢復到可以工作的狀態。想法?

在VS2013中創建一個簡單的MFC應用程序的工作原理也是如此。您可以通過DoModal中顯示的關於框來證明這一點。我希望ShowDialog和DoModal是等價的。一個簡單的C++/CLI或C#winforms應用程序可以很好地工作。

而這隻發生在外面的應用程序時,我們的主窗口最大化。

+0

您是否正確設置了顯示的對話框的[所有者](https://msdn.microsoft.com/en-us/library/system.windows.forms.form.owner.aspx)屬性?應該將此屬性設置爲引用每個對話框的父窗口。 – Leandro

+0

當我嘗試時,工作得很好,從未聽到過這個投訴。重新編碼是必需的。 –

+0

一些更多信息: *這隻發生在我們的主窗口最大化時 *我無法在示例應用程序(使用C++/CLI或C#)中重現此操作。 *無法發佈我們真正的應用程序。 – Ben

回答

0

事實證明,這是由我們使用Syncfusion UI庫引起的。他們將會修復這個錯誤。