Ignorieren von Mausereignissen in der Warteschlange

8

Ich habe eine Anwendung in C # geschrieben, die .NET Compact Framework 3.5 unter Windows CE zum Ziel hat. Von Zeit zu Zeit werden auf dem UI-Thread Vorgänge ausgeführt, die etwa eine Sekunde dauern. Ich setze derzeit die Cursor.Current -Eigenschaft, um anzuzeigen, dass die Anwendung beschäftigt ist, aber dies verhindert nicht, dass Mausereignisse von eifrigen Benutzern in die Warteschlange eingereiht werden. Dies führt manchmal zu unbeabsichtigten Klicks.

Was ist der beste Weg, um Warteschlangenmausnachrichten auf der .NET Compact Framework-Plattform zu ignorieren? Leider muss der Code auf dem UI-Thread ausgeführt werden.

    
Tormod Fjeldskår 23.03.2009, 08:16
quelle

2 Antworten

8

Die Deaktivierung der Steuerelemente hilft Ihnen nicht, da ich in meiner POS-Anwendung festgestellt habe, dass die Benutzer in etwa 50 ms einen weiteren Klick einschleusen können, insbesondere bei Verwendung eines nicht kalibrierten Touchscreens.

Eines der Probleme, die dadurch entstehen, ist, dass Sie beim Erstellen einer Rechnung nicht doppelt klicken können, um eine neue Rechnung zu erstellen, nur weil es eine 50-minütige Verzögerung vor dem Löschen der aktuellen Rechnung gibt.

In solchen Fällen verwende ich ein ähnliches Muster:

%Vor%

Falls Sie den Bildschirm erneut aktivieren müssen, tun Sie dies:

%Vor%     
Miki Watts 23.03.2009, 09:22
quelle
0

Ich glaube, dass die beste Lösung darin besteht, die Ereignisse zu verhindern. Sie können dies tun, indem Sie alle Steuerelemente deaktivieren und erneut aktivieren, wenn der langwierige Vorgang abgeschlossen ist.

    
kgiannakakis 23.03.2009 08:43
quelle