Hallo Community,
in meiner Applikation habe ich eine längere Operation die asynchron im BackgroundWorker ausgeführt wird (es wird auch wo nötig ins UI-Thread synchroniziert). Für die Dauer dieser Operation muss ich ein paar Steuerelemente sperren und deren Cursor - Eigenschaft auf WaitCursor setzten. Getrennt betrachtet machen die Eigenschaften "Enabled" und "Cursor" keine Probleme doch zusammen funktioniert es einfach nicht. Sobald Enabled auf "false" gesetzt wird verwirft das Control den Wert von der Cursor-Eigenschaft und es wird immer nur ein Default Cursor angezeigt. Sprich ich bekomme entweder ein Disabled oder ein WaitCursor aber nicht beides gleichzeitig. Hat eventuell jemand schon mal solches Problem erfolgreich gelöst? Bitte um Hinweise.
PS: Einfaches setzen vom WaitCursor genügt leider nicht da es danach immer noch möglich ist auf dem Control zu clicken:baby: .
Gruß
Hallo yngwie,
ich hab das nicht probiert, aber wenn so ist, glaub ichs dir. Vielleicht ist es sogar "works as designed".
Der Wait-Cursor ist ja eigentlich sowieso eher out. Und es gibt auch tatsächlich bessere Möglichkeiten, den Benutzer über die noch laufende Aktion zu informieren, z.B. mit einem ProgressBar.
herbivore
Hallo yngwie,
ich benutze Wait-Cursor und Disablen gleichzeitig.
Allerdings setze ich nicht den Wait-Cursor der Controls auf true, sondern ich setze den Standard-Cursor auf Wait-Cursor :
Cursor.Current = Cursors.WaitCursor;
...
Cursor.Current = Cursors.Default;
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Der Sinn sowie die Anwendung von "UseWaitCursor" hat sich mir bisher auch noch nicht erschlossen (und daher benutze ich auch immer die Variante von Bernd).
Hallo BerndFfm,
die beschriebene Variante mit Cursor.Current hätte leider den Nachteil dass gleich die ganze Oberfläche der Applikation betroffen ist. Ich muss ganz gezielt nur bestimmte Controls "sperren". Trotzdem danke ich dir für deine Antwort.
Gruß
Du kannst doch Cursor.Current
auch für ein Control setzen, das muss doch nicht für die ganze Form sein. (Control.Cursor-Eigenschaft)
Darth Maim
Sorry Darth Maim aber wie bereits in meinem Originalpost beschrieben funktioniert es nicht zusammen mit "Enabled = false" wie gewünscht