C#, Maus nach unten Bewegen?
Guten Tag,
Ich habe im Internet mal einen Code gefunden, wie man die Maus / den Zeiger in bestimmte Richtungen bewegen lassen kann. Der Code war allerdings sehr kompliziert.
Mein Programm muss die Maus nur nach unten bewegen können und ich (nur ich, nicht der Benutzer) sollte die Geschwindigkeit anpassen können.
2 Antworten
Wie du das mit der Kontrolle löst, musst du entscheiden. Den Mauszeiger kannst du mit der Cursor.Position Property positionieren. Im Beispiel unten wird die X und Y Position um -50 Pixel verändert.
private void MoveCursor()
{
this.Cursor = new Cursor(Cursor.Current.Handle);
Cursor.Position = new Point(Cursor.Position.X - 50, Cursor.Position.Y - 50);
Cursor.Clip = new Rectangle(this.Location, this.Size);
}
Ich würde dir empfehlen einen Loop zu machen und je nach dem, wie schnell die Maus nach unten geht, die Schritte zwischen den Änderungen zu vergrössern / verkleinern. In deinem Fall müsstest du den Zeiger in -Y bewegen.
@Agiger03: Mein Hass wäre deiner Anwendung sicher. Ich bin der Ansicht, DAS IST MEIN GUI! Das soll MIR die Arbeit erleichtern!
Außerdem, was machst du, wenn der Anwender dem Betriebssystem-GUI verboten hat, auf solche unverschämten Anforderungen von Anwendungen zu reagieren?
Du arbeitest doch mit Windows Forms? Schau hier: Cursor.Position. Die Geschwindigkeit lässt sich über einen Timer regeln, der in von dir bestimmten Intervallen die Positionsänderung um einen Schritt vollführt.
Das ist doch ein direktes Verschieben zu der Position, oder?
Wie die Antwort von Gaterde.
Muss ich mal gucken, ob ich damit was anfangen kann.
Es gibt immer nur ein "direktes" Verschieben ;) Aber wenn du alle 0,5 Sekunden den Cursor um ein Pixel nach unten verschiebst, hast du eine lineare Verschiebung nach -Y :)
Ich werde das jetzt mal Umsetzen. Ich hoffe, dass das nicht zu viel Leistung sauft, wenn das immer wieder gemacht wird, wenn man die linke Maustaste drückt^^
Statt Loop würde ich einen Timer nehmen. Do-Nothing-Loops sind eins von den Dingen, die man nur unter sehr, sehr speziellen Umständen überhaupt in Erwägung ziehen sollte.