2010-10-01 54 views
0

我試圖通過調用Windows窗體程序集中的多個方法來啓動對話框。我的應用是一個控制檯應用。所有的執行邏輯都順利進行,沒有例外,但是窗口沒有啓動。這是一個已知的問題,你不能從控制檯應用程序啓動一個Windows窗體?通過從控制檯反射啓動它時無法創建窗口

回答

1

好吧,是的。你必須有一個Windows消息循環才能工作。 如果您從頭開始創建Forms應用程序,您會看到使用... Application.Run(new YourMainForm())創建的Program.cs模塊。運行基本上是消息泵 - 這對於表單的工作來說非常重要。

+0

有沒有一種方法來模擬這個運行調度或其他? – kateroh 2010-10-02 00:40:15

+0

是的,我確定有一種方法,但我自己沒有做過那樣的事情。與WPF應用程序相反,Windows Forms應用程序實質上是傳統的WIN32 GUI應用程序(它們使用傳統的窗口消息,句柄等來完成它們的工作) - 它們只是使用託管代碼。在WIN32中,要做到這樣的事情,你可以啓動自己的線程並調用GetMessage,DispatchMessage和friends,讓你的動態創建窗口的消息得到處理。這*應該*也適用於Forms應用程序,但可能有警告。 – 2010-10-02 00:55:33

+0

感謝您解釋這個!這實際上是我需要在控制檯應用程序內創建的WPF應用程序/表單。任何關於如何使用WPF應用程序可以實現的建議? – kateroh 2010-10-02 01:42:47