Fügen Sie ein Spinnrad, während Anwendung ist die Suche in der Datenbank
Ich habe eine Anwendung, die sucht in einer Datenbank nach Informationen.
Da die Datenbank ziemlich gross ist, dauert es manchmal viel Zeit, bevor die Anwendung gibt die Ergebnisse zurück an die Oberfläche.
Möchte ich hinzufügen, eine Art von spinning-Rad, um den Benutzer zu informieren, dass die Anwendung noch in der Datenbank zu suchen und nicht einfrieren. Sobald die Ergebnisse zurückgegeben werden, sollte das Rad verschwinden.
Irgendeine Idee, wie dies zu tun, oder gibt es ein gutes tutorial, wie dies zu tun?
InformationsquelleAutor GIBIT | 2010-11-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie betrachtet, verändert sich der Mauszeiger zur Sanduhr als wäre dies extrem einfach zu implementieren:
Allerdings würde ich damit einverstanden, dass die Anzeige eines 'spinning wheel' ist wahrscheinlich ein wenig mehr Benutzer freundlich und auf jeden Fall viel mehr auf der Hand. Also, zunächst bekommen Sie eine animierte gif, die zu Ihren Bedürfnissen passt. Dann erstellen Sie ein Formular, ein Bildfeld, die das Bild enthält.
Sobald Sie haben, Sie können zeigen Sie das Formular an den Benutzer und im hintergrund tun, die DB-Arbeit, sobald dies abgeschlossen ist schließen Sie das Formular.
Andere alternative wäre die Verwendung einer rolling-Fortschrittsbalken statt, also wenn es 100% erreicht es Zyklen um wieder und immer wieder, bis Sie es schließen.
EDIT:
So eine Sache, ich vergaß zu erwähnen, ist, dass Sie haben, um Ausnahmebedingungen. Können sagen, Sie setzen Sie den cursor zu warten, dann tritt ein Fehler auf. Die Ausnahme kann umgehen den code, der setzt alles. Dies lässt den Benutzer mit einer veränderten cursor und keine Möglichkeit, es zu ändern.
Wenn ich dies getan habe, was ich haben in der Regel erstellt ein Einweg-WaitCursor-Klasse und dann so etwas:
In der Entsorgung der WaitCursor-Klasse, die Sie setzen Sie den cursor auf Standard zurück. Das gleiche würde gelten, wenn Sie nach unten ging die Strecke mit einer form mit einem Bild oder Fortschrittsbalken.
Wir sind derzeit mit der Maus, aber wir wollen das ändern, um einen 'spinning wheel'. Also ich denke mal, deine form Idee ist die beste. Das heißt, ich würde einen thread richtig?
Die Datenbank ist in der Regel ziemlich schnell. Jedoch, in einigen Fällen, wenn eine Menge von Informationen, die zurückgegeben wird, könnte es dauern ein wenig Zeit. Als der noch, es gibt keine Beschwerden über die Zeit, die es dauert, bis die Ergebnisse zurückgegeben, es ist wirklich einfach zu machen, mehr Benutzer freundlich
Ja, threading aus der DB Aufrufe, wäre der Weg zu gehen, da sonst die UI blockiert und kann Animationen nicht richtig funktionieren. Spawn einen thread mit einem Rückruf, so dass, wenn es abgeschlossen ist, Sie behandeln die call-back-event und dort das Formular zu schließen.
Ein guter Ort, um ein Spinnrad ist hier: ajaxload.info
InformationsquelleAutor MrEyes
Finden Sie eine animierte gif von so ein spinner, wie diese eine. Legen Sie es in eine PictureBox, stellen Sie seine Visible-Eigenschaft auf True, wenn Sie den Auftrag starten. Hüten Sie sich vor, Sie müssen zum ausführen der Abfrage in einem worker-thread, damit die animation lebendig und das user interface reagiert. Die BackgroundWorker-Klasse ist das gut.
Beginnen Sie mit dem MSDN-Artikel für die BackgroundWorker-Klasse, es ist ein gutes Beispiel.
Thx, ill take a look at it
Oder schau dir die Antworten an diese Frage
InformationsquelleAutor Hans Passant
Könnten Sie die Umgebungen, die Standard-Mauszeiger, die für Vista/7 wird ein Kreis mit außen dreht, oder die XP purzeln Sanduhr.
Könnten Sie starten Ihre DB-Zugriff auf eine
BackgroundWorker
und zeigen Sie ein animiertes Steuerelement wie zum Beispiel ein Festzelt progress bar, oder Sie konnten zeigen, benutzerdefinierte animation, um zu zeigen, Busy-status.InformationsquelleAutor msarchet