Laden...

Form + Konsole: Konsolenanwendung soll eine Form öffnen

Erstellt von keving vor 15 Jahren Letzter Beitrag vor 15 Jahren 11.252 Views
K
keving Themenstarter:in
21 Beiträge seit 2008
vor 15 Jahren
Form + Konsole: Konsolenanwendung soll eine Form öffnen

Wusste leider nicht wohin ich das nun schreiben sollte.
Also ich weiß es geht.
Ich hab ne KonsolenAnwendung und will auch nur noch eine Form öffnen beim Start.
Wie geht das? gibts da irgendwelche Link hab zwar in Google gesucht aber nichts gefunden was annähernd nach Hilfe aussieht 🙁

mfg keving

998 Beiträge seit 2007
vor 15 Jahren

Sicher ds du richtig gegoogelt hast?

Mein zweiter treffer: hier

Gruß David

K
keving Themenstarter:in
21 Beiträge seit 2008
vor 15 Jahren

Kommt immer drauf an welche Suchwörter man benutzt 🙁 aber tausenddank

998 Beiträge seit 2007
vor 15 Jahren

Genau die beiden die du in deiner Überschrift gewählt hast... 😁

Gruß David

K
keving Themenstarter:in
21 Beiträge seit 2008
vor 15 Jahren

Ich hab es nun so gemacht:

                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());

Aber wenn die Form dann aufgeht kann ich nix mehr eintippen in die Konsole weder noch spuckt der GameServer mehr Informationen in der Konsole aus 🙁

Gibt es eine möglichkeit es so zu machen das er nur ganz normal die Form öffnet oder das etwas anderes pausiert oder stoptt?

mfg keving

998 Beiträge seit 2007
vor 15 Jahren

Ich nehme mal an weil der Mainthread dann mit der Form beschäftigt ist bzw. mit dem Abfragen der Eventschleife.

Gruß David

K
keving Themenstarter:in
21 Beiträge seit 2008
vor 15 Jahren

Und wie löse ich das? 🙁

1.044 Beiträge seit 2008
vor 15 Jahren

Hallo keving,

du musst erst eine Instanz der Form erstellen und dann kann man mittels der Methode Show oder ShowDialog die Form anzeigen lassen. Hier ein Beispiel:

Form1 frm1 = new Form1();
frm1.ShowDialog();

Vergiss nicht Form1 mit dem Namen der Form zu ersetzen!

Hallo DavidT,

Ich nehme mal an weil der Mainthread dann mit der Form beschäftigt ist bzw. mit dem Abfragen der Eventschleife.

bist du dir sicher? Ich glaube da liegst du falsch.

zero_x

998 Beiträge seit 2007
vor 15 Jahren

Ich sagte ich glaube... Normal sollte der Mainthread doch dann in der form verweilen und keine anfragen mehr in der console mehr bearbeiten.

Gruß David

K
keving Themenstarter:in
21 Beiträge seit 2008
vor 15 Jahren

Selbes Problem wieder Konsole aussergefecht 🙂

mfg keving

998 Beiträge seit 2007
vor 15 Jahren

bist du dir sicher? Ich glaube da liegst du falsch.

Ja, jetzt bin ich mir sicher, so funktionierts:


using System;
using System.Threading;
using System.Windows.Forms;

namespace ConsoleUndForm
{
    class Program
    {
        static Thread _thread;
        
        static void Main(string[] args)
        {
            _thread = new Thread(new ParameterizedThreadStart(FormStart));
            _thread.Start();
            Console.WriteLine("Irgendwas eingeben");
            Console.ReadKey();
            string vari = Console.ReadLine();
            Console.WriteLine("Sie haben "+vari+" eingegeben");
            Console.ReadKey();
        }

        static void FormStart(object param)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}

Einfach in einem eigenen Thread starten.

Edit: ShowDialog kann schon gar nicht funktionieren, da der Grundgedanke dahinter ist, das aufrufende Element so lange zu sperren, bis der Diaalog beendet ist.

Gruß David

K
keving Themenstarter:in
21 Beiträge seit 2008
vor 15 Jahren

tausend dank 🙂 👍

mfg keving