Autor Beitrag
Orothred
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 86


C# (VS 2005)
BeitragVerfasst: Mi 26.09.07 08:54 
Hi!

Ich lasse einen Button mit Hilfe einer for-schleife von unten nach oben durch eine Form laufen. Wenn er oben angekommen ist, beginnt er wieder unten und läuft die form erneut durch. das ganze macht er 5 mal.

nun will ich während des schleifendurchlaufs überprüfen, ob der button angeklickt wurde. wenn er angeklickt wurde, soll der schleifendurchlauf abgebrochen werden und der nächste durchlauf soll gestartet werden. wie mach ich das? so was wie if (Button1.MouseClick) funktioniert ja nicht
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mi 26.09.07 09:36 
Abgesehen vom Sinn eines solchen Verfahrens - es geht z.B. so:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
private bool mouseClicked = false;

//  Deine (äußere) Schleife prüft im Rahmen der Startmaßnahmen u.a.:
if (mouseClicked) {
  //  beginne den nächsten Durchlauf, dazu:
  mouseClicked = false;
}

//  Deine (innere) Schleife prüft im Rahmen der Schlussmaßnahmen u.a.:
  if (mouseClicked) {
    //  Abbruch des aktuellen Durchlaufs
    break;
  }

//  der Maus-Click wird einfach registriert:
private void ButtonClick(object sender, EventArgs e) {
  mouseClicked = true;
  //  vielleicht ist zusätzlich nötig:
  Application.DoEvents();
}

Die Detailprüfungen musst Du Dir selbst ausdenken. Die erforderliche Verzögerung hast Du wahrscheinlich beim Verschieben des Buttons schon berücksichtigt.

Gruß Jürgen