免責事項
これを実現する方法は非常に簡単ですが、他の人に見てもらうための良いアプローチだとは思いません。ただし、開発者がコンソールフォームと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");
}
}
}