免责声明
有一种方法可以很简单地实现这一目标,但是我不建议您将这种方法用作让其他人看到的应用程序的好方法。但是,如果您需要一些开发人员同时显示控制台和Windows窗体,则可以轻松完成。
此方法还支持仅显示控制台窗口,但不支持仅显示Windows窗体-即将始终显示控制台。如果不显示Windows窗体,则只能与控制台窗口进行交互(即,接收数据- Console.ReadLine()
,Console.Read()
)。输出到控制台--Console.WriteLine()
在两种模式下均可工作。
按原样提供;无法保证以后不会做任何可怕的事情,但是它确实起作用。
项目步骤
从标准控制台应用程序开始。
将Main
方法标记为[STAThread]
在您的项目中添加对System.Windows.Forms的引用
将Windows窗体添加到您的项目。
将标准Windows启动代码添加到您的Main
方法中:
最终结果
您将拥有一个显示控制台和Windows窗体的应用程序。
样例代码
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ConsoleApplication9 {
class Program {
[STAThread]
static void Main(string[] args) {
if (args.Length > 0 && args[0] == "console") {
Console.WriteLine("Hello world!");
Console.ReadLine();
}
else {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
}
Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ConsoleApplication9 {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void Form1_Click(object sender, EventArgs e) {
Console.WriteLine("Clicked");
}
}
}