TrackBar i rezygnacja

0

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
        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 :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1