przesuwanie suwaków

B1
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam, mam problem z przesuwaniem suwaków, a dokładnie chciałem zrobić przesuwanie za pomocą klawiszy.
Problem polega na tym, że nie do końca wiem które właściwości edytować. Jeżeli modyfikuję panel.Left += 5, suwak skraca się o przesunięto odległość, a nie przesuwa suwam. Jak naprawić ten błąd?

A1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 106
0

Chodzi Ci o komponent trackBar?

Jokerman
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0
Bert1223 napisał(a)

Witam, mam problem z przesuwaniem suwaków, a dokładnie chciałem zrobić przesuwanie za pomocą klawiszy.
Problem polega na tym, że nie do końca wiem które właściwości edytować. Jeżeli modyfikuję panel.Left += 5, suwak skraca się o przesunięto odległość, a nie przesuwa suwam. Jak naprawić ten błąd?

Left to położenie horyzontalne lewego górnego narożnika. Może by tak panel.Value ? Mowa o ScrollBar ?

B1
  • Rejestracja: dni
  • Ostatnio: dni
0

Post był pisany na szybko, jeszcze raz powoli piszę co chcę uzyskać.
Mam panel którego rozmiar przekracza wyznaczony obszar, przez co pokazują się suwaki - scrollbars.
Chciałby przesuwać przy użyciu np. klawiszy: "a,s,d i w", jakie właściwości mam modyfikować? Dla panelu?

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
0

Do tego służą panel.HorizontalScroll.Value oraz panel.VerticalScroll.Value. Pamiętaj tylko, że nie mogą być ujemne.

B1
  • Rejestracja: dni
  • Ostatnio: dni
0

W dalszym ciągu nie wiem jak użyć tego suwaka :/
Wartość musi być z zakresu od min do max przy czym i tak przy zmianie suwak nawet nie drgnie!

Kopiuj
if (przesunMapa)
{
        Point aktualnaPozycja = new Point(e.X - przesunMapaStaraPozycja.X, e.Y - przesunMapaStaraPozycja.Y);
        panel.HorizontalScroll.Maximum = panel.Width;
        panel.HorizontalScroll.Value += 400;
        //panel.Top += aktualnaPozycja.Y;
        //panel.Left += aktualnaPozycja.X;
        przesunMapa = false;
        this.Cursor = Cursors.Default;
}

Za każdym razem okno wyświetlana zawartość okna powinna przesunąć się o 400, ale nic się nie dzieje.
Za komentowany kod przesuw zawartość jednocześnie zmniejszając rozmiar suwaków :/

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
0

A u mnie takie coś działa:

Kopiuj
 const int Step = 10;

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyData == Keys.D)
    {
        this.HorizontalScroll.Value += Step;
    }
    else if (e.KeyData == Keys.A)
    {
        if (this.HorizontalScroll.Value >= Step)
        {
            this.HorizontalScroll.Value -= Step;
        }
    }
    else if (e.KeyData == Keys.W)
    {
        if (this.VerticalScroll.Value >= Step)
        {
            this.VerticalScroll.Value -= Step;
        }
    }
    else if (e.KeyData == Keys.S)
    {
        this.VerticalScroll.Value += Step;
    }
}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.