c#从控制台应用程序显示windows窗体

c#从控制台应用程序显示windows窗体,c#,.net,winforms,C#,.net,Winforms,我正在开发控制台应用程序,目前我已经在我的项目中创建了一个windows窗体(名称:Fcon),是否有任何可能的方法从控制台显示Fcon 最简单的选择是启动windows窗体项目,然后将输出类型更改为Console应用程序。或者,只需添加对System.Windows.Forms.dll的引用,然后开始编码: using System.Windows.Forms; [STAThread] static void Main() { Application.EnableVisualStyl

我正在开发控制台应用程序,目前我已经在我的项目中创建了一个windows窗体(名称:Fcon),是否有任何可能的方法从控制台显示Fcon

最简单的选择是启动windows窗体项目,然后将输出类型更改为Console应用程序。或者,只需添加对System.Windows.Forms.dll的引用,然后开始编码:

using System.Windows.Forms;

[STAThread]
static void Main() {
    Application.EnableVisualStyles();
    Application.Run(new Form()); // or whatever
}
重要的一点是Main()方法上的[StatThread],这是完全支持COM所必需的

另一种方式:

using System.Runtime.InteropServices;

private void Form1_Load(object sender, EventArgs e)
{
    AllocConsole();
}

[DllImport("kernel32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool AllocConsole();

如果你研究这个话题,就在谷歌上,你可以找到很多方法来解决你的问题:我的建议是尝试一些方法,验证什么更适合你。

我找到了其他解决方案

testformtf=newtestform();
tf.Show()


刚刚在main中创建了forms对象

我曾经使用后一种方法,从表单中创建控制台,但这意味着表单总是试图显示。相反,我使用了这两种方法的组合,在主控制台中分配控制台或运行表单。如果我想让表单出现,我可以通过带有窗口标志的arg[0]重新运行自己,但这也可以在内部完成。