2009-05-20 12 views
2
Application.Run(form); 

Eigentlich habe ich versucht, dies aus meinem Projekt zu nennen. Ich habe diese Ausnahme. Wie man es löst? Ich habe bereits ein anderes Application.Run(frmBind); in meinem Projekt aufgerufen.So behandeln Sie diese Ausnahme: Ungültige Operation Ausnahme

Das Starten einer zweiten Nachrichtenschleife in einem einzelnen Thread ist keine gültige Operation . Verwenden Sie stattdessen Form.ShowDialog.

static void Main(string[] args) 
{ 
    frmBind = new frmMain(); 

    Application.Run(frmBind); 

    //args1 = string.Copy(args); 
} 

Dies ist, wo ich die Anwendung auf den ersten

Jetzt nennen es hier schon wieder getan:

try 
{ 
    // Application.Run(form); 
    form.ShowDialog(); 
} 

hier die Ausnahme ausgelöst wird.

+1

Können Sie ein Codebeispiel posten? – Galilyou

Antwort

7

Es sagt dir, wie es zu lösen:

form.Show(); 

oder wenn Sie die neue Form sein modal wollen:

form.ShowDialog(); 
+0

auch nach dieser Ausnahme wird die Ausnahme fortgesetzt – Arunachalam

+0

Sie sollten * die zweite Application.Run * entfernen und stattdessen verwenden. –

+0

hat das gleiche gemacht, auch nachdem diese Ausnahme fortfährt, so dass nur diese Frage – Arunachalam

4

können Sie nur in einem Thread Application.Run einmal nennen. Application.Run wird (unter anderem) die Hauptnachrichtenschleife für den Thread einrichten, und es kann nur eine solche Schleife geben. Aus diesem Grund erhalten Sie die Ausnahme. Wenn Sie einfach ein Formular anzeigen möchten, verwenden Sie stattdessen form.Show() oder form.ShowDialog(). Beachten Sie, dass das Aufrufen von ShowDialog für ein bereits sichtbares Formular auch eine InvalidOperationException (aber mit einer anderen Nachricht) auslöst.

+0

selbst nachdem, dass die Ausnahme weitergeht – Arunachalam

+0

Sie müssen etwas Code zeigen, denke ich. Sonst ist es wirklich schwer zu helfen. –

+0

Könnte es sein, dass das Formular bereits sichtbar ist, wenn Sie ShowDialog aufrufen? –

Verwandte Themen