2016-12-13 2 views
2

Ich lerne C#, und ich habe 1 Projekt namens "Beispiele". In diesem Projekt habe ich einige WinForms, und ich weiß, wie man ein WinForm oder ein anderes WinForm oder andere aufruft, wenn mein Programm startet (ich ändere nur den Application.Run-Parameter, um das Formular wiederzugeben, das ich laden möchte).Programmgesteuert zwischen WinForm und Konsole wechseln

Was ich wissen möchte ist, kann ich irgendwie eine Konsolenanwendung programmgesteuert starten? Also ... Ich habe dieses Programm Klasse, die Visual Studio gemacht, wenn ich das Projekt erstellt (es war ein WinForm das erste Mal, dass ich es erstellt wurde), die wie folgt aussieht:

[STAThread] 
static void Main() 
{ 
    Application.EnableVisualStyles(); 
    Application.SetCompatibleTextRenderingDefault(false); 
    Application.Run(new ______); //I left ______ because I change the name to the form I want 
} 

Also, was ich tun möchte, ist Kommentar das heraus und das tun:

static void Main() 
{ 
    new ConsoleApplication(); 
} 

und haben, dass eine Konsolenanwendung ausführen. Im Moment läuft es durch die Klasse, die ich ConsoleApplication genannt habe, aber es läuft nicht als Konsolen-App. Damit meine ich, jetzt sieht Consoleapplication wie folgt aus:

class ConsoleApplication 
{ 
    public ConsoleApplication() 
    { 
     Console.ReadLine(); 
    } 
} 

aber die Konsole erscheint nie. Muss ich Konsolenanwendungen in einem anderen Projekt erstellen? Ich hatte gehofft, ein Projekt mit all meinen Beispielen (Console und WinForms) zu haben und dem Programm einfach zu sagen, welches Programm gestartet werden soll, indem ich die Main-Methode ändere. Gibt es eine Möglichkeit, das zu tun?

Vielen Dank im Voraus!

+0

Setzen Sie den Projekttyp in Eigenschaften auf "Konsolenanwendung" anstelle von "Windows-Anwendung" –

+0

@ m.rogalski Vielen Dank! Das habe ich gebraucht! Jetzt funktioniert es wie ich es will :) – Brian

Antwort

1

versuchen Sie dies. Fügen Sie es zu Ihrem WinForm hinzu.

using System.Runtime.InteropServices; 

private void Form1_Load(object sender, EventArgs e) 
{ 
    AllocConsole(); 
} 

[DllImport("kernel32.dll", SetLastError = true)] 
[return: MarshalAs(UnmanagedType.Bool)] 
static extern bool AllocConsole(); 
1

Erstellen Sie eine Konsolenanwendung und Referenz System.Windows.Forms.dll. Dann können Sie ein Formular erstellen, und gehen Sie wie folgt aus:

using System; 
using System.ComponentModel; 

namespace TestCWF 
{ 
    internal class Program 
    { 
    private static void Main(string[] args) 
    { 
     var mf = new MainForm(); 
     mf.ShowDialog(); 

     Console.ReadKey(); 
    } 
    } 
} 

Ich habe gerade Sie eine formular App haben gesehen und wollen eine Konsole öffnen. In diesem Fall könnte Stans Antwort besser passen.

Verwandte Themen