2016-08-22 5 views
1

Ich bin neu in der Codierung. Ich kann nicht herausfinden, warum meine Textbox Text in Windows-Formularen mit C# nicht anzeigen wird. Hier ist mein Code.Textbox wird nicht wie erwartet angezeigt

public partial class Form1 
{ 
    [STAThread] 
    static void Main() 
    { 
     Application.EnableVisualStyles(); 
     Application.SetCompatibleTextRenderingDefault(false); 
     Application.Run(new Form1()); 

     Form1 myTestObject = new Form1(); 
     myTestObject.myTextPanel("hello"); 
    } 

    public void myTextPanel(string myText) 
    { 
     // Windows Forms textBox1 
     textBox1.Text = myText; 
    } 
} 
+0

Ich habe eine Antwort unten geschrieben, Könnten Sie bitte einen Blick, lassen Sie mich wissen, wenn Sie weitere Details oder Erklärung benötigen ..! –

Antwort

2

Sie eine Instanz der Form1 laufen und dann eine neue Instanz des gleichen (bedenken Sie beide andere Instanz sind) erstellen und Werte zuweisen. Sie können dieses versuchen:

Form1 myTestObject = new Form1(); 
myTestObject.myTextPanel("hello"); 
Application.Run(myTestObject); 

, die die gleiche Instanz des Form1 verwenden, so können Sie den Text zu sehen ist erscheint; Sie können den Konstruktor als auch, statt für die myTextPanel Methode, der Konstruktor machen sieht wie folgt aus:

public void Form1(string myText) 
{ 
    // Windows Forms textBox1 
    textBox1.Text = myText; 
    // Do something 
} 

wenn ja der Haupt Willen als wie das geändert folgende:

Form1 myTestObject = new Form1("hello"); 
Application.Run(myTestObject); 

oder wie folgt:

Application.Run(new Form1("hello")); 
+0

Vielen Dank für die Beantwortung meiner Frage, warum der Text nicht angezeigt wurde und zusätzliche Hilfe bietet. Wenn Sie das Application.Run in Ihrem ersten Code-Snippit hinzufügen, erstellt es ein anderes Form1. So wird Form1 leer ohne Text angezeigt, dann wird ein anderes Form1 mit dem Text angezeigt. Ich möchte nur ein Form1 verwenden, das das myTestObject.myTextPanel ("Hallo") verwendet; Codezeile unmodifiziert und in der Lage sein, eine andere Zeile zu verwenden myTestObject.myTextPanel ("GoodBye"); um die Ausgabe der textBox1 zu aktualisieren. – Hester

Verwandte Themen