private void Form1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
if (e.KeyCode == Keys.Left)
{
if (panel2.Left > 0)
panel2.Left--;
}
else if (e.KeyCode == Keys.Right)
{
if (panel2.Right < panel1.Width)
panel2.Left++;
}
}
Как двигать Panel в C#
У меня на форме находится Panel1, и на этой панели находится Panel2 меньших размеров. Так вот, мне надо [COLOR="Blue"]при помощи клавиш[/COLOR] двигать Panel2 так, чтобы она не зашла за границы Panel1. Подскажите плиз, при помощи какого свойства можно двигать Panel2 и как сделать так, что бы я не мог выйти за границы Panel1?
Код:
Вверх-вниз аналогично.
Но могут быть проблемы, если фокус ввода у других контролов. Желательно, чтобы таких не было на форме.
Вероятно понадобится установить у формы свойство KeyPreview = true.
Цитата: koodeer
Код:
private void Form1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
if (e.KeyCode == Keys.Left)
{
if (panel2.Left > 0)
panel2.Left--;
}
else if (e.KeyCode == Keys.Right)
{
if (panel2.Right < panel1.Width)
panel2.Left++;
}
}
{
if (e.KeyCode == Keys.Left)
{
if (panel2.Left > 0)
panel2.Left--;
}
else if (e.KeyCode == Keys.Right)
{
if (panel2.Right < panel1.Width)
panel2.Left++;
}
}
Вверх-вниз аналогично.
Спасибо! вариант хорош.Но нужно чтобы Panel2 не просто сдвинулась, а поменяла свою позицию на форме, т.е. при запуске, Panel2 находится в центре формы, а при нажатии клавиши влево Panel2 оказывается у левого края формы.Подскажите плиз, как можно этого добится?