2010-10-01 57 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