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?
Chodzi Ci o komponent trackBar?
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 ?
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?
Do tego służą panel.HorizontalScroll.Value
oraz panel.VerticalScroll.Value
. Pamiętaj tylko, że nie mogą być ujemne.
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!
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 :/
A u mnie takie coś działa:
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;
}
}