ข้อจำกัดความรับผิดชอบ
มีวิธีในการบรรลุสิ่งนี้ซึ่งค่อนข้างง่าย แต่ฉันไม่แนะนำว่าเป็นแนวทางที่ดีสำหรับแอปที่คุณจะให้คนอื่นเห็น แต่ถ้าคุณมีนักพัฒนาบางคนต้องการแสดงรูปแบบคอนโซลและหน้าต่างพร้อมกันก็สามารถทำได้อย่างง่ายดาย
วิธีนี้ยังรองรับการแสดงเฉพาะหน้าต่าง Console แต่ไม่รองรับการแสดงเฉพาะ Windows Form นั่นคือ Console จะแสดงเสมอ คุณสามารถโต้ตอบ (เช่นรับข้อมูล - Console.ReadLine()
, Console.Read()
) กับหน้าต่างคอนโซลเท่านั้นหากคุณไม่แสดงแบบฟอร์ม windows เอาต์พุตไปยังคอนโซล - Console.WriteLine()
- ทำงานได้ทั้งสองโหมด
สิ่งนี้มีให้ตามที่เป็นอยู่ ไม่รับประกันว่าสิ่งนี้จะไม่ทำสิ่งที่น่ากลัวในภายหลัง แต่มันได้ผล
ขั้นตอนโครงการ
เริ่มต้นจากมาตรฐานโปรแกรมประยุกต์ของคอนโซล
ทำเครื่องหมายMain
วิธีการเป็น[STAThread]
เพิ่มข้อมูลอ้างอิงในโครงการของคุณไปที่System.Windows.Forms
เพิ่มแบบฟอร์ม Windows ในโครงการของคุณ
เพิ่มรหัสเริ่มต้นของ Windows มาตรฐานในMain
วิธีการของคุณ:
สิ้นสุดผลลัพธ์
คุณจะมีแอปพลิเคชันที่แสดงรูปแบบคอนโซลและหน้าต่างที่เป็นทางเลือก
ตัวอย่างรหัส
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");
}
}
}