Застереження
Існує спосіб досягти цього, який є досить простим, але я б не вважав, що це хороший підхід для програми, яку ви збираєтеся дозволити іншим людям побачити. Але якщо розробнику потрібно одночасно показати форми консолі та Windows, це можна зробити досить просто.
Цей метод також підтримує показ лише вікна консолі, але не підтримує показ лише форми Windows - тобто консоль буде завжди відображатися. Ви можете взаємодіяти (тобто отримувати дані - Console.ReadLine()
, Console.Read()
) з вікном консолі, лише якщо ви не показуєте форми Windows; вихід на консоль - 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");
}
}
}