Text in der Statusbar von amderem Form

Murkel

Grünschnabel
Hallo @ all

Ich möchte nach dem Verbinden mit der Datenbank die Bestätigung in der Statusbar des HauptForm als Text.

Ich kann auf die methode zugreiffen, aber ich bekomme folgende Fehlermeldung:

Eine nicht behandelte Ausnahme des Typs 'System.NullReferenceException' ist in Lagerverwaltung.exe aufgetreten.
Zusätzliche Informationen: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.


Der Code ist

Form1 F1;
:
:
try

{odbConn.Open();
F1.statusBarPanel4.Text=("Verbunden");
//SQL-Anweisung ausführen
odbCommInsert.ExecuteNonQuery();
}
:
:

Hilfe

Danke Murkel
 
Hallo.

Sagt er auch in welcher Zeile der Fehler ist?

Es könnte sein, dass du
* odbCon nicht Instanziert hast
* in F1 kein Verweis zu ner Form ist
* odbCommInsert nicht Instanziert ist

MfG,
Alex
 
Also der fehler ist wech, keine Meldung mehr hatte "new Form1()" vergessen.

Nun wollte ich ja die Statusbar auf Form1 verändern. Das macht er aber nicht. Weder Text noch Icon:

Form1 F1 =new Form1();
:
:


F1.statusBarPanel4.Text = "Fred";


Nix passiert, warum nicht?
Da sollte doch jetzt das Textfeld des Panel4 überschrieben werden, oder?


Hab doch die Panel auf public gesetzt.



Danke
 
Hast du das Panel auch der Statusbar hinzugefügt?

Wie rufst du eigentlich den Code auf? Diese Datenbankabfrage, ist sie in der Klasse Form1..? Wenn ja, greife auf diese Instanz mit dem this-Zeiger darauf zu. Durch das "new Form1()" wird ein neues Formular erzeugt. (Welches wohl noch unsichtbar ist, weil die Show-Methode nicht aufgerufen wird..

Code:
this.statusBarPanel4.Text=("Verbunden");
 
Also Form1 ist das Hauptfenster über Form 5 soll die Anmeldung via Passwort erfolgen.

Wenn ich also das Form5 aufrufe und die DB verbindung steht(das tut sie auch) soll in der Statusbar Panel4 die Anzeige laufen.

Um auf die Klasse Form1 zuzugreifen muss ich doch aber Form1 F1= new Form(); machen oder?

Irgendwie steh ich aufm Schlauch, wie komme ich denn sonst an die Klasse Form1?

Murkel
 
Achso, ok.

Um auf die Klasse Form1 zuzugreifen muss ich doch aber Form1 F1= new Form(); machen oder?
Jein. Damit erzeugst du ein neues Form1. Du willst aber ja auf ein schon existirendes Zugreifen.

Im ThreadForm1 und Form2 .. Text Übergabe ist ein Beitrag von mir mit einem Code-Beispiel. Ich denke das sollte es dir verdeutlichen wie du es machen solltest.
Hier nochmal der Link zu meinem Beitrag.

Du musst einfach dem Formular das auf das andere Zugreifen soll einen Verweis auf dieses Formular geben. Aber schau dir mal meinen Code an.

MfG,
Alex
 
Ist das die einzige möglichhkeit, oder geht das auch einfacher.

Bei C++ glaube ich geht das einfacher.

Vielleicht hat ja noch einer eine Idee?


Murkel
 
Wenn das Fenster mit der Statusbar dein MDIParent ist und dein Fenster mit der Abfrage das Kind des Parent solltest du schon eine Refernz darauf besitzen und brauchst so nicht direkt erst einen Verweiss übergeben.
 
Zurück