Label mit 3 Sekunden Verzoegerung, dann oeffne Form

DesperC

Grünschnabel
Guten Morgen,


erstmal entschuldigung fuer den verrueckten Titel, aber weiss nicht wie ich mein Problem nennen soll:


Ich habe eine Form mit Labels, nun moechte ich wenn ich mit der Maus ueber ein bestimmtes Label gehe und dort etwa 3 Sekunden warte, das eine kleine Form angezeigt wird.

Ich habs zuerst mit nem Mouse Enter Event versucht. In der habe ich dann ein

System.Threading.Thread.Sleep(3000);

eingebaut. Sieht schoen aus aber nun wird wenn ich mit der Maus kurz ueber das Label fahre die Form aufgerufen....

Ich moechte aber nur das das passsiert wenn ich auf dem Label ca 3 Sekunden stehe.

Hat jemand ne Idee


Waere Super


Danke


Gruss


Desper
 
Am Anfang
Code:
public Multimedia.Timer myTimer = new Multimedia.Timer();
Nach
Code:
InitializeComponent();
füge ein
Code:
Label1.MouseEnter += new EventHandler(Label1_MouseEnter);
Label1.MouseLeave += new EventHandler(Label1_MouseLeave);
myTimer.Mode = Multimedia.TimerMode.OneShot;
myTimer.Resolution = 1;
myTimer.Period = 3000;
myTimer.Tick += Timer_Tick;
dann folgende Funktionen einbauen
Code:
private void Label1_MouseEnter(object sender, EventArgs e)
{
     myTimer.Start();
}
private void Label1_MouseLeave(object sender, EventArgs e)
{
      myTimer.Stop();
}
private void Timer_Tick(object sender, EventArgs e)
{
    //Invokes durchführen wenn nötig
    //Formular öffnen
}
Der Timer läuft nur ein einziges mal, und zwar nach ablauf von myTimer.Period.

Gruß
Marcus
 

Anhänge

  • Timer.zip
    3,6 KB · Aufrufe: 12
Zurück