Wie stellen Sie eine Winform Panhardstab (Schieber) verhalten sich vernünftig auf einem Touch-Screen-Monitor

StackOverflow https://stackoverflow.com/questions/755671

Frage

Was ist der einfachste Weg, eine WinForms Panhardstab zu ändern, so dass, wenn ein Benutzer klickt auf sie die Panhardstab an die Position der Maus springt?

In der Standardeinstellung die Spurstange bewegt sich auf halbem Weg zwischen diesem Ort ausführen und wo die Maus geklickt wurde.

Update: Ich versuche, dies zu tun, damit ich die Panhardstab auf einem Touch-Screen verwenden kann. Mit einer Touch-Screen-Schleppen wirklich hart sind, damit die Voraussetzung für die Spurstange zu springen gerade, wo die Benutzer Hähne.

War es hilfreich?

Lösung

Ich habe es nie getan, aber ich würde durch einen Blick auf dem Standort des Mausklick starten. Ich konnte dann herauszufinden, wie weit über den aktuellen Umfang der trackbar der Klick entfernt wurde und legen Sie die Position des Verfolgers zu diesem Punkt.

würde ich durch einen Blick in das Überschreiben der Steuer starten und die Maus bezogenes Ereignis Funktionen zu manipulieren (OnMouseDown(), zum Beispiel). Beachten Sie, dass in einigen Fällen kann es wichtig sein, die Basisklasse Implementierung einer überschriebenen Funktion aufzurufen, sollten Sie es auf einer Fall-zu-Fall-Basis zu betrachten. (Ich lief in Konflikt geraten diese, so ist es frisch in meinem Kopf.)

Beachten Sie, dass Sie nur das Verhalten von Standardkontrollen auf diese Weise ändern sollen, wenn Sie einen sehr zwingenden Grund. Sie sind Standard, weil sie in einer vorhersagbaren Art und Weise über viele Hunderte / Tausende von Programmen verhalten. etwas verhalten zu machen anders für nur Ihr Programm kann verletzt den Prinzip der Lease Astonishment . Die einzige trackbar ich mir vorstellen kann, dass ich erwarte, dass die Art und Weise Sie beschreiben, ist für irgendeine Art von Media-Player verhalten.

Edit: Basierend auf Ihren Kommentar, ja, ich glaube, Sie einen zwingenden Grund haben. :)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top