0

Ich arbeite an einem Youtube-Mp3-Konverter. Die Konvertierung von Mp3 dauert einige Sekunden und ich möchte, dass der Benutzer nicht auf ein Steuerelement im Formular klicken kann. Ich habe es mit Control.Enabled = false für alle Kontrolle getan, aber ich denke, dieser Weg ist nicht professionell und scheint nicht gut für die Visualität. Gibt es eine gute Methode, dies zu tun?Was ist der beste Weg, um zu verhindern, dass Benutzer während der Verarbeitung im Hintergrund irgendetwas auf das Formular klicken?

+0

Bitte erläutern dies: „und doesn Es scheint nicht gut für die Visualität zu sein. Control.Enabled = false macht genau das, was Sie wollen, d. H. Deaktiviert die Benutzerinteraktion. – lenkan

+0

Deaktivieren Sie das gesamte Formular, zeigen Sie im Laufschriftmodus eine Fortschrittsanzeige an, und ändern Sie den Cursor in Beschäftigt. nehmen Sie Ihre Auswahl, es ist Ihre App – Plutonix

+0

... oder zeigen Sie eine modale Dialogform an. – LarsTech

Antwort

4

als Kommentare sagt man eine modale Form haben kann:

yourModalForm.ShowDialog(); 

, die überhaupt keine Titelleiste Tasten oder keine Titelleiste und wird sich in der Nähe nach der Konvertierung erfolgt.

Oder können Sie Enabled Eigenschaft als selbst vorgeschlagen, aber nicht für jede Kontrolle, können Sie es für Ihre ganze Form auf einmal tun:

this.Enabled = false; 

Denken Sie daran, dass this Ihre Form ist, wenn Sie in den richtigen Kontext sind .

Ich schlage vor, Sie auch Ihre Form Cursor zu ändern, wie folgt aus:

this.Cursor = Cursors.WaitCursor; 

Und wenn Ihre Arbeit beendet ist alles, was Sie tun müssen, ist:

this.Enabled = true; 
this.Cursor = Cursors.Default; 
Verwandte Themen