2016-10-12 4 views
1

Ich verwende C# .NET kompaktes Framework v3.5 auf meinem Windows Mobile-Gerät und ich benutze vs2008 für die Entwicklung.Cursors.WaitCursor funktioniert nur, wenn MessageBox.Show verfügbar ist

ich vor kurzem einen seltsamen Fehler erlebe,

Dieser Teil des Codes Cursor.Current = Cursors.WaitCursor; nicht funktioniert. d.h Warte-Cursor ist nicht

Anzeigen Aber wann ist die Verwendung:

Messagebox.Show(""); 
Cursor.Current = Cursors.WaitCursor; 

Ich erhalte die Wartecursor

Ist alles Cursor.Current = Cursors.WaitCursor; von Anzeigen blockiert ???

Antwort

2

Es hängt tatsächlich von dem Rest des Codes ab, den Sie haben. Das System wechselt nur zum Warte-Cursor, wenn der UI-Thread Fenstermeldungen verarbeiten kann. Wenn der Code, der auf Cursor.Current = ... folgt, den UI-Thread blockiert, wird keine Änderung angezeigt.

Ich weiß nicht, warum ein MessageBox.Show(""); ihm helfen soll, aber man kann versuchen, diese:

Cursor.Current = Cursors.WaitCursor; 
Application.DoEvents(); 

Auf diese Weise kann die Anwendung Prozessfenster Meldungen anstehen. Es sollte also auch optisch zum Warte-Cursor wechseln.

+0

Nicht einmal Application.DoEvents(); funktioniert nicht . Was wären die anderen möglichen Fälle? – user3383301

+0

Ich habe kürzlich mein kompaktes Framework von v2.0 auf v3.5 aktualisiert. Sollte das irgendwelche Probleme verursachen ?? – user3383301

+0

Ich habe solche Probleme nie erlebt. Nur wenn nur ein sehr kurzer Zeitraum zwischen dem Wechsel zum Warte-Cursor und zurück vergeht, werden Sie nicht sehen, dass sich der Cursor ändert. –

Verwandte Themen