Laden...

Fehler: Ausnahme System.InvalidOperationException

Erstellt von Remkay vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.323 Views
R
Remkay Themenstarter:in
2 Beiträge seit 2007
vor 16 Jahren
Fehler: Ausnahme System.InvalidOperationException

Hallo,

ich weiß nicht genau ob ich hier bei euch richtig bin, ich hoffe es einfach mal 🙂

Mein Problem ist folgendes:

Ich habe vor 2 Tagen mit Antme Version 1.1 unter C# angefangen und es lief eigentlich ganz normal.

Bis dann irgendwann folgende Fehlermeldung auftrat:

Ausnahme System.InvalidOperationException wurde im ausgeführten Programm ausgelöst:
Invoke or BeginInvoke cannot be called on a control until the window handle has been created.#

MarshaledInvoke()
Invoke()
Invoke()
Start()
Start()
Start()
.ctor()
Main()

Ich habe alles mögliche versucht:
Compiler (SharpDevelop2.2) neu installiert.
Antme neuintsalliert.
Systemwiederherstellung gemacht.

Alles hat den Fehler nicht behoben.

Danach habe ich dann die Version 1.5 von Antme probiert und das Programm lief dann auch 1mal.
Beim 2. Versuch trat dann wieder der Fehler auf.
🙁

Kann mir wer sagen woran das liegen kann, bzw wie ich das beheben kann?

Ich habe bei Antme auch schon die vorprogrammierte Vorlage ausprobiert ohne dabei was zu verändern, aber selbst da erscheint der Fehler.

Danke im vorraus.

Remkay

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo Remkay,

[FAQ] Controls von Thread aktualisieren lassen (Control.Invoke) Abschnitt "Fehlender Fensterhandle".

herbivore

R
Remkay Themenstarter:in
2 Beiträge seit 2007
vor 16 Jahren

Hey Danke für die schnelle Antwort 🙂

Leider bin ich was sowas angeht ein ziemlicher Noob und deshalb hilft mir die Antwort:

In diesem Fall reicht es rechtzeitig vorher im GUI-Thread Control.CreateHandle aufrufen. Diese Methode ist zwar protected, aber wenn man als Control für das Invoke das Form (also this) nimmt, ist das kein Problem. Wenn man Control.CreateHandle benötigt, dann ruft man es am besten gleich im Konstruktor des Forms auf.

Nicht viel weiter.

Wo/Was ist der GUI-Thread?

Und wie erstelle ich das Control.CreateHandle?

MfG

Remkay

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo Remkay,

Wo/Was ist der GUI-Thread?

Normalerweise einfach der Haupt-Thread der Anwendung. Auf jeden Fall der Thread, der die GUI-Elemente (Forms, Controls) erzeugt.

Und wie erstelle ich das Control.CreateHandle?

Gar nicht. Das ist eine Methode, die du aufrufen musst.

Im Zweifel lies dich erstmal in den Aufbau von Windows-Forms-Anwendungen ein, z.B. in http://www.galileocomputing.de/openbook/visual_csharp/

herbivore

U
1.688 Beiträge seit 2007
vor 16 Jahren

Es hilft auch, lesend auf die Eigenschaft "Handle" der Form zuzugreifen:
http://msdn2.microsoft.com/en-us/library/system.windows.forms.control.handle.aspx