Autor Beitrag
Max064
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 52



BeitragVerfasst: Fr 30.07.10 08:54 
Hi,

ich versuche folgende Funktion aufzurufen:

ausblenden C#-Quelltext
1:
2:
screen = new Bitmap(windowSize.Width, windowSize.Height);
_graphiceditor.panel1.DrawToBitmap(screen, new Rectangle(new Point (0,0),windowSize));

Dabei entpsricht _graphiceditor einer geöffneten Form. Sobald ich jedoch versuche die Fkt. _graphiceditor.panel1... aufzurufen bekomme ich folgende Fehlermeldung:

Zitat:

In System.InvalidOperationException ist eine Ausnahme vom Typ "System.Windows.Forms.dll" aufgetreten, doch wurde diese im Benutzercode nicht verarbeitet.

Zusätzliche Informationen: Ungültiger threadübergreifender Vorgang: Der Zugriff auf das Steuerelement GraphicEditorForm erfolgte von einem anderen Thread als dem Thread, für den es erstellt wurde.


Was bedeutet dies und wie kann ich den Fehler verhindern?

lg Max
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Fr 30.07.10 09:09 
Wie schon da steht versuchst du aus dem einen Thread ein Control des anderen Threads zu verändern.
Um das zum Laufen zu bringen heisst das Zauberwort: "Invoke"
Dazu dürftest du hier im Forum oder per Google einige Beispiele/Tutorials finden.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4807
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 30.07.10 11:56 
Hier ein guter Artikel zum Thema "Invoke": www.mycsharp.de/wbb2...d.php?threadid=33113