gpt4 book ai didi

c# - 以编程方式在 WinForm 和控制台之间切换

转载 作者:行者123 更新时间:2023-11-30 23:18:00 25 4
gpt4 key购买 nike

我正在学习 C#,我有 1 个名为“Examples”的项目。在这个项目中,我有一些 WinForm,我知道如何在我的程序启动时调用一个或另一个 WinForm(我只是更改 Application.Run 参数以反射(reflect)我要加载的表单)。

我想知道的是我能否以某种方式以编程方式启动控制台应用程序?所以...我有这个 Program 类,它是 Visual Studio 在我创建项目时创建的(我第一次创建它时是一个 WinForm),它看起来像这样:

[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new ______ ); //I left ______ because I change the name to the form I want
}

所以我想做的是注释掉并执行此操作:

static void Main()
{
new ConsoleApplication();
}

并让它运行一个控制台应用程序。现在它通过我称为 ConsoleApplication 的类运行,但它实际上并不作为控制台应用程序运行。我的意思是,现在 ConsoleApplication 看起来像这样:

class ConsoleApplication
{
public ConsoleApplication()
{
Console.ReadLine();
}
}

但控制台从未出现。我需要在不同的项目中创建控制台应用程序吗?我希望有一个包含我的所有示例(控制台和 WinForms)的项目,并通过更改 Main 方法告诉程序启动哪一个。有办法吗?

提前致谢!

最佳答案

试试这个。将其添加到您的 WinForm。

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();

关于c# - 以编程方式在 WinForm 和控制台之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41116129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com