Mam w moim programie TrackBar i do przechwycenia jego wartości wykorzystuję zdarzenia Scroll i MouseUp (jako potwierdzenie). Chciałbym jednak, aby po opuszczeniu TrackBara przez mysz wracał on do wartości przed kliknięciem. Próbowałem używając zdarzeń MouseLeave i MouseEnter, ale to nic nie dało, bo gdy przycisk myszy jest wciśnięty nie są one generowane, zna ktoś jakiś inny sposób?
0
0
private int ddd;
private void trackBar1_MouseDown(object sender, MouseEventArgs e)
{
ddd = trackBar1.Value;
}
private void trackBar1_MouseUp(object sender, MouseEventArgs e)
{
trackBar1.Value = ddd;
}
:-O
0
Nie działa. Zależy mi na tym, aby reagować w odmienny sposób, gdy mysz ostanie puszczona w kontrolce, a w odmienny poza nią. (2 przypadek jest rezygnacją ze zamiany wartości)
0
private void trackBar1_MouseUp(object sender, MouseEventArgs e)
{
if (e.X > 400 || e.Y > 42) trackBar1.Value = 0;
}
Zaznaczajac, ze trackbar jest w pozycji 0:0 o rozmiarze 400:42.
Czy oto ci chodzilo ?
0
Dzięki za pomysł.
I kod dla przyszłych pokoleń:
int trackBar1Value = 0;
void TrackBar1MouseUp(object sender, MouseEventArgs e)
{
if(e.X<0||e.X>trackBar1.Width||e.Y<0||e.Y>trackBar1.Height)
{
trackBar1.Value = trackBar1Value;
}else{
//zatwierdzenie działań
}
}
void TrackBar1MouseDown(object sender, MouseEventArgs e)
{
trackBar1Value = trackBar1.Value;
}
Ok, drobna poprawka i działa wszędzie :)