Forum: PC-Programmierung C# Mausklick auswerten in Windowsform


von Marco P. (zwiebel)


Lesenswert?

Hallo,

ich habe vor bei gedrücktem Button durch die Maus ein Zeichen über RS232 
zu senden. Mit dem Mousedown event is das leider nur einmal möglich. Ich 
würde jedoch gerne in einer Endlosschleife das Zeichen solange senden 
wie der Button gedrückt ist. Zur Zeit habe ich es mit dem MouseMove 
event gelöst. Der Nachteil ist jedoch das ich die Maus in Bewegung 
halten muss...

        private void left_MouseMove(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
            sp.Write("a");
            label1.Text = "Robo links";
            }
        }

Ich hoffe ihr könnt mir auf die Sprünge helfen.

Mfg Marco

von Valentin B. (nitnelav) Benutzerseite


Lesenswert?

Ich würde das an deiner Stelle so machen:

Ein Timer, eine Variable, ein Interrupt bei MouseMove.

Wenn MouseMove kommt, dann Variable setzen.

Wenn TimerTick kommt, dann irgendwas mit der Variable machen.

Mit freundlichen Grüßen,
Valentin Buck

von Thomas E. (thomase)


Lesenswert?

Würde ich so machen:

private void left_MouseDown(object sender, MouseEventArgs e)
{
   timer1.Start();
}

private void left_MouseUp(object sender, MouseEventArgs e)
{
     timer1.Stop();
}

private void timer1_Tick(object sender, EventArgs e)
{
     sp.Write("a");
     label1.Text = "Robo links";
}

mfg.

von Marco P. (zwiebel)


Lesenswert?

Super vielen dank !

Genau so klappt das ganze :)

Mfg Marco

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.