Guten Tag.
Über einen Button wird ein zusätzliches Form aufgerufen.
Problem 1:
Eigentlich möchte ich, dass das primäre Fenster gesperrt wird, wenn das zweite Fenster geöffnet wird. Also müsste ich SpezNr.ShowDialog() verwenden, nur gibt es da ein Problem:
Wenn das zweite Form aufgerufen wird und man es während dem Laden (es wird in einem Backgroundworker eine Ini-Datei in eine DataGridView-Liste gelesen; das kann schon mal eine Sekunde dauern) schliesst, stürzt das Prgramm ab.
ObjectDisposedException - Auf das verworfene Objekt kann nicht zugegriffen werden. Objektname : "MainWindow".
Das betrifft den Code der Program.cs:
Anscheinend wirkt also hier der Garbage Collector.
Wenn ich in der Program.cs keine Parameter übergeben müsste, könnte ich anstelle des Codes oberhalb diesen verwenden (so ist es auch standardmässig, wenn man in Visual Studio ein neues Projekt erstellt):
So wäre die Deklarierung gleich in derselben Zeile. Nur kann ich das in meinem Fall nicht machen (oder doch?).
Das ganze passiert eben nur, wenn ich das zweite Form mit "ShowDialog" öffne; mit der "Show"-Methode funktioniert es einwandfrei. Wie kann ich diesen Fehler beheben?
Problem 2:
Ich möchte dem zweiten Form noch eine Variable übergeben. Das liesse sich ja in meinem Fall mit "spezNr.Variablenname" lösen, nur bringe ich es nicht zustande, denn irgendwie muss man die Variable ja noch deklarieren. Da fehlt mir Wissen.
Wie kann ich gleich beim Aufrufen des zweiten Forms eine Variable übergeben?
Vielen Dank schon mal.
MfG | eightcore
Über einen Button wird ein zusätzliches Form aufgerufen.
Code:
Form SpezNr = new Anrufererkennung.SpezelleNummern();
SpezNr.Show();
Problem 1:
Eigentlich möchte ich, dass das primäre Fenster gesperrt wird, wenn das zweite Fenster geöffnet wird. Also müsste ich SpezNr.ShowDialog() verwenden, nur gibt es da ein Problem:
Wenn das zweite Form aufgerufen wird und man es während dem Laden (es wird in einem Backgroundworker eine Ini-Datei in eine DataGridView-Liste gelesen; das kann schon mal eine Sekunde dauern) schliesst, stürzt das Prgramm ab.
ObjectDisposedException - Auf das verworfene Objekt kann nicht zugegriffen werden. Objektname : "MainWindow".
Das betrifft den Code der Program.cs:
Code:
frmMain = new MainWindow();
frmMain.SetNewArgs(astrArg);
Application.Run(frmMain);
Anscheinend wirkt also hier der Garbage Collector.
Wenn ich in der Program.cs keine Parameter übergeben müsste, könnte ich anstelle des Codes oberhalb diesen verwenden (so ist es auch standardmässig, wenn man in Visual Studio ein neues Projekt erstellt):
Code:
Application.Run(new Form1());
So wäre die Deklarierung gleich in derselben Zeile. Nur kann ich das in meinem Fall nicht machen (oder doch?).
Das ganze passiert eben nur, wenn ich das zweite Form mit "ShowDialog" öffne; mit der "Show"-Methode funktioniert es einwandfrei. Wie kann ich diesen Fehler beheben?
Problem 2:
Ich möchte dem zweiten Form noch eine Variable übergeben. Das liesse sich ja in meinem Fall mit "spezNr.Variablenname" lösen, nur bringe ich es nicht zustande, denn irgendwie muss man die Variable ja noch deklarieren. Da fehlt mir Wissen.
Wie kann ich gleich beim Aufrufen des zweiten Forms eine Variable übergeben?
Vielen Dank schon mal.
MfG | eightcore