Ist es möglich eine Consolenanwendung zu erstellen die irgendwann zur laufzeit ein WinForm - Fenster erzeugt und ausgibt?
Hallo jan223,
ja, allerdings muss solange das Fenster angezeigt wird, die Nachrichtenverarbeitung laufen, also in der Regel Application.Run.
herbivore
Ich habe jetzt folgendes probiert:
ich habe der Consolenanwendung eine WinForm Klasse hinzugefügt. Das ist der Quelltext der Consolenanwendung.
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.Write("Hello");
Console.Read();
Form1 f1 = new Form1();
f1.Show();
Console.Read();
}
}
}
Die Form wird aber nicht angezeit (oder so kurz das man es nicht sieht.).
Hallo jan223,
wie ich sagte:
allerdings muss solange das Fenster angezeigt wird, die Nachrichtenverarbeitung laufen, also in der Regel Application.Run.
Wenn das Fenster angezeigt werden soll, während das Consolenprogramm gleichzeitig Aktionen (hier also Console.Read) ausführen soll, dann brauchst du mehr als einen Thread.
herbivore
Hast du eine Referenz auf System.Windows.Forms?
(Kann auch sein, dass das inzwischen automatisch hinzugefügt wird, sobald du ein Form hinzufügst.)
webstarg
Hast du eine Referenz auf System.Windows.Forms
Ja hab ich, wenn ich im Form_Load Event
System.Threading.Thread.Sleep(5000)
hinzufüge, dann sieht man das das Fenster nach 5 Sekunden wieder zu geht. Aber man sieht das Fenster davor nicht.
Wenn das Consolenprogramm beeendet ist, geht das WinForm Fenster auch zu das ist ja klar. 2 Threads habe ich inzwischen auch.
Hallo jan223,
in dem Thread, in dem das Fenster angezeigt werden soll, muss Application.Run laufen, während das Fenster angezeigt wird. Mehr ist es nicht, weniger aber eben auch nicht.
herbivore
Danke ich habs jetzt, irgendwie stand ich gerade auf dem Schlauch.