Aktion solange Button gedrück

Hallo zusammen,

schreibe garde ein Projekt und habe da eine Grafik gebaut, bei der sich eine Linie nach um ein Pixel nach links bewegt, wenn ich auf einen Button klicke.

Das funktioniert auch soweit, allerdings möchte ich das so ändern, dass sich die Linie bewegt, solange die linke Maustaste gedrückt bleibt.

Hat jemand eine Idee, wie ich sowas bewerkstelligen kann?

Ich Programmiere in Visual C++ Express - sollte in C# aber genau so funktionieren, wenn da jemand eine Idee hat.

Vielen Dank für die Hilfe

Hallo

Ich bin nicht sicher, aber sollte es nicht mit MouseDown klappen?

MfG
hahihu

Hallo!

Ja, OnMouseDown ist richtig, nur komme ich auf keine Lösung, bei der nicht auch OnMouseUp mit abgefragt wird.

public partial class Form1 : Form
 { int i;
 bool losgelassen = false;

 public Form1()
 {
 InitializeComponent(); 
 }

 protected override void OnMouseDown(MouseEventArgs e)
 {
 base.OnMouseDown(e);
 if (e.Button == MouseButtons.Left)
 { i = 0;
 losgelassen = false;
 do {
 // Hier gehts zu deiner Linien Zeichen Funktion. 
 i++;
 // Horche mal nach draußen
 Application.DoEvents();
 }
 while (losgelassen == false);

 MessageBox.Show(i.ToString());
 }
 }

 protected override void OnMouseUp(MouseEventArgs e)
 {
 base.OnMouseUp(e);
 if (e.Button == MouseButtons.Left)
 losgelassen = true;
 }
 }

Lasse mich da aber gerne eines besseren belehren.

Liebe Grüße!
frohsinn

Hallo

Du kannst es folgendermaßen machen:

Du richtest zwei Variablen ein: bool unten und int pos. unten ist zunächst false, pos ist immer die aktuelle position der Linie. Bei MouseDown stellst du unten auf true und solange unten true ist, wird die Linie bewegt, nämlich indem du pos inkrementierst und als neuen wert zuweist. Vergiss aber nicht pos zu aktuallisieren! MousUp stellt unten wieder auf false und das Bewegen hört auf! et voilá!

MfG
hahihu