Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как двигать Panel в C#

34K
03 декабря 2010 года
Dinar1623
57 / / 14.11.2010
У меня на форме находится Panel1, и на этой панели находится Panel2 меньших размеров. Так вот, мне надо [COLOR="Blue"]при помощи клавиш[/COLOR] двигать Panel2 так, чтобы она не зашла за границы Panel1. Подскажите плиз, при помощи какого свойства можно двигать Panel2 и как сделать так, что бы я не мог выйти за границы Panel1?
297
03 декабря 2010 года
koodeer
1.2K / / 02.05.2009
Код:
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++;
    }
}

Вверх-вниз аналогично.

Но могут быть проблемы, если фокус ввода у других контролов. Желательно, чтобы таких не было на форме.
Вероятно понадобится установить у формы свойство KeyPreview = true.
34K
03 декабря 2010 года
Dinar1623
57 / / 14.11.2010
Цитата: 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++;
    }
}

Вверх-вниз аналогично.



Спасибо! вариант хорош.Но нужно чтобы Panel2 не просто сдвинулась, а поменяла свою позицию на форме, т.е. при запуске, Panel2 находится в центре формы, а при нажатии клавиши влево Panel2 оказывается у левого края формы.Подскажите плиз, как можно этого добится?

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог