Das verweilen Maus-Position feststellen

12/03/2008 - 17:54 von Attila Krick | Report spam
HI NG,

Ich habe ein TabControl, desen Reiter sollen automatisch beim drüberfahren
mit der Maus wechseln, das funktioniert soweit wie folgt:

private void tabControl_MouseMove(object sender, MouseEventArgs e)
{
Rectangle tabRect;
for (int i = 0; i < tabControl.TabPages.Count; i++)
{
tabRect = tabControl.GetTabRect(i);
if (e.X > tabRect.Left && e.X < tabRect.Right && e.Y > tabRect.Top
&& e.Y < tabRect.Bottom)
{
if (this.tabControl.SelectedTab != tabControl.TabPages[i])
{
this.tabControl.SelectTab(tabControl.TabPages[i]);
}
}
}
}

Nur zu gut :-) d.h. Die Reiter wechseln sofort bei berühung. Jetzt würde
ich gern aber erst nach 1 Sekunde eine wechsel durchführen, das die
Oberflàchse nicht so hektisch für den Benutzer wird.

Hab Ihr ein paar ansetze für mich?

Grüße

Attila
 

Lesen sie die antworten

#1 Carl Schaffert
12/03/2008 - 18:38 | Warnen spam
Hallo Attila,

Ich habe ein TabControl, desen Reiter sollen automatisch beim drüberfahren
mit der Maus wechseln, das funktioniert soweit wie folgt:

private void tabControl_MouseMove(object sender, MouseEventArgs e)
{
Rectangle tabRect;
for (int i = 0; i < tabControl.TabPages.Count; i++)
{
tabRect = tabControl.GetTabRect(i);
if (e.X > tabRect.Left && e.X < tabRect.Right && e.Y > tabRect.Top
&& e.Y < tabRect.Bottom)
{
if (this.tabControl.SelectedTab != tabControl.TabPages[i])
{
this.tabControl.SelectTab(tabControl.TabPages[i]);
}
}
}
}

Nur zu gut :-) d.h. Die Reiter wechseln sofort bei berühung. Jetzt würde
ich gern aber erst nach 1 Sekunde eine wechsel durchführen, das die
Oberflàchse nicht so hektisch für den Benutzer wird.



wie wàre es denn mit MouseEnter, MouseLeave und einem Timer ?

Und wie sieht es mit GotFocus/LostFocus... KeyEvents... KeyTab... usw. aus?

Gruß Carl

Ähnliche fragen