Kontrolka TrackBar - położenie suwaka

0

Jak można zrobić, aby klikanie myszką na kontrolce suwaka powodowało, aby suwak znalazł się w miejscu kliknięcia.
W tym momencie mam kontrolkę podzieloną na 3 części. Jeśli klikam myszką na kontrolkę, to suwak przesuwa się lewa-prawa. Aby ustawić suwak w dowolnym położeniu muszę chwycić myszką suwak i przesunąć go w konkretne miejsce.

Dziękuję za pomoc.

pozdrawiam Wojtek

0

Obsłużyć MouseClick, na podstawie współrzędnych kliknięcia obliczyć współrzędne miejsca suwaka, w którym nastąpiło kliknięcie, następnie podzielić przez szerokość kontrolki i ustawić Value. Suwak wtedy się sam przesunie.

0

Rozwiązanie (znalazłem w internecie http://bytes.com/topic/c-sharp/answers/583276-trackbar-mouse-click-directly-value):

private void trackVolume_MouseDown(object sender, MouseEventArgs e)
{
double dblValue;

// Jump to the clicked location
dblValue = ((double) e.X / (double) trackVolume.Width) * (trackVolume.Maximum - trackVolume.Minimum);
trackVolume.Value = Convert.ToInt32(dblValue);
}

pozdrawiam Wojtek

0

To teraz napisz czym to się różni od mojego rozwiązania :)

I co za lamer użył Convert.ToInt32() zamiast (int)? Obleśne.

0
somekind napisał(a)

To teraz napisz czym to się różni od mojego rozwiązania :)

I co za lamer użył Convert.ToInt32() zamiast (int)? Obleśne.

(int)char zwróci Ci numer kodowania znaku, c# koduje w UTF-8. Convert.ToInt16(char/string) zwróci Ci przekonwertowaną wartość z "52" na 52, niewspinający się na wyżyny intelektualne osobniku.

1

@up - ta? To uruchom ten kod:

static void Main(string[] args)
{
    Console.WriteLine(Convert.ToInt32('3'));
    Console.Read();
}

Jeśli wyświetli 3 to dostaniesz cukierka...

Trolle są wszędzie.

Btw. skoro wątek już i tak odkopany - Convert.ToInt32 moim zdaniem potrafi być ładne. Nie rozumiem czemu somekind go nie lubi :)

0
Marek napisał(a)

(int)char zwróci Ci numer kodowania znaku, c# koduje w UTF-8. Convert.ToInt16(char/string) zwróci Ci przekonwertowaną wartość z "52" na 52, niewspinający się na wyżyny intelektualne osobniku.

Zajebiście Mistrzuniu. Na swych wyżynach intelektu zapomniałeś tylko o tym, że tu nie chodzi konwersję napisu lecz liczby zmiennoprzecinkowej. Próbuj dalej.

MSM napisał(a)

Btw. skoro wątek już i tak odkopany - Convert.ToInt32 moim zdaniem potrafi być ładne. Nie rozumiem czemu somekind go nie lubi :)

Zazwyczaj używam xyz.Parse, ponadto nie stosuję go tam, gdzie nie trzeba.

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