2016-04-08 9 views
0

Dies ist der Code, den ich verwende. Wenn ich das Programm öffne, löst es eine Ausnahme aus, nachdem eines der angegebenen Ereignisse auftritt. Der Debugger bietet zusätzliche Informationen: "Das Starten einer zweiten Nachrichtenschleife in einem einzelnen Thread ist keine gültige Operation. Verwenden Sie stattdessen" Form.ShowDialog "." Das ist etwas, was ich für normal halte. Mit ShowDialog() (siehe Code unten) wird das Problem nicht behoben.InvalidOperationException, wenn ich versuche, ein anderes Formular auszuführen

private void preferencesToolStripMenuItem_Click(object sender, EventArgs e) 
    { 
     Preferences.ShowDialog(); 
    } 
    private void button10_Click(object sender, EventArgs e) 
    { 
     Configuration.ShowDialog(); 
    } 
    private void button6_Click(object sender, EventArgs e) 
    { 
     Configuration.ShowDialog(); 
    } 

Stattdessen gibt es einen Fehler in die „Eine Objektreferenz für die nicht-statische Feld, Methode oder Eigenschaft‚Form1.ShowDialog()‘erforderlich ist. Ja, geschieht es, weil VS2015 denkt, dass ich zeigen will ein Dialog, der zu der Form gehört, während mein Einwand eine andere Form zu öffnen, ist Es wird auch darauf hin, Mitglied Zugang zu vereinfachen ...

Dies ist der Code in Program.cs.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace y_cruncher_GUI_edition 
{ 
    static class Program 
    { 
     /// <summary> 
     /// The main entry point for the application. 
     /// </summary> 
     [MTAThread] 
     static void Main() 
     { 
      Application.EnableVisualStyles(); 
      Application.SetCompatibleTextRenderingDefault(false); 
      Application.Run(new Form1()); 
     } 
    } 
} 

EDIT: Ich habe drei Formen im Projekt t (Form1, Konfiguration und Einstellungen). Das Programm öffnet Form1, und wenn eine bestimmte Taste gedrückt wird, möchte ich entweder Konfiguration oder Einstellungen anzeigen.

Ich hoffe, ich habe nichts Dummes wie das vorherige Mal getan, das ich eine Frage stellte (noch ein Neuling darin). Jeder Kommentar, Hilfe oder Wahl wird geschätzt. :)

+0

Bitte einen richtigen Titel. Zwinge die Leute nicht dazu, die ganze Frage zu lesen, um zu verstehen, was du verlangst –

+0

BTW der Fehler ist ziemlich offensichtlich - du hast * bereits * deine Anwendung ausgeführt, was ist der Zweck des Aufrufs von 'Application.Run'? Was versuchst du zu machen? –

+0

Zunächst einmal, vielen Dank für die schnelle Antwort. Zweitens möchte ich ein anderes Formular öffnen. Drittens, Entschuldigung für die Innovenience, aber ich habe vergessen, den Titel zu beenden ... – AlFas

Antwort

0

Wenn Sie nur ein anderes Formular anzeigen möchten, fügen Sie einfach den folgenden Code in das Ereignis onClick() der Schaltfläche ein.

Preferences p1 = new Preferences(); p1.show();

+0

Danke für die Antwort. Ich habe es versucht und es war erfolgreich! Ich habe es irgendwie geändert, aber es funktioniert gut! :) – AlFas

+0

Kein Problem, irgendetwas brauchst du m8. –

Verwandte Themen