免责声明
有一种方法可以很简单地实现这一目标,但是我不建议您将这种方法用作让其他人看到的应用程序的好方法。但是,如果您需要一些开发人员同时显示控制台和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");
        }
    }
}