我正在学习C#,我有一个名为“Examples”的项目。在这个项目中,我有一些WinForms,我知道如何在我的程序启动时调用一个WinForm或另一个WinForm(我只是更改Application.Run参数以反映我想要加载的Form)。
我想知道的是我能以某种方式以编程方式启动控制台应用程序吗?所以......我有一个Visual Studio在创建项目时创建的Program类(我第一次创建它时是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方法启动哪一个。有没有办法做到这一点?
提前谢谢!
答案 0 :(得分:1)
试试这个。将它添加到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();
答案 1 :(得分:1)
创建一个控制台应用程序,并引用System.Windows.Forms.dll
。然后你可以创建一个表格并像这样:
using System;
using System.ComponentModel;
namespace TestCWF
{
internal class Program
{
private static void Main(string[] args)
{
var mf = new MainForm();
mf.ShowDialog();
Console.ReadKey();
}
}
}
我刚刚看到你有一个表单应用程序,想要打开一个控制台。在这种情况下,斯坦的答案可能更合适。