|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.02.2013, 04:02 | #1 |
Регистрация: 03.10.2009
Сообщений: 9
|
WinForms. Событие(я) для 10 кнопок
Имеется 10 кнопок. При наведении курсора на кнопку, она меняет положение на несколько пикселей, возвращается на место после того, как курсор покидает видимую часть кнопки. Такого эффекта можно добиться следующим образом:
private void button5_MouseMove(object sender, MouseEventArgs e) { button5.Location = new Point(204,19); } private void button5_MouseLeave(object sender, EventArgs e) { button5.Location = new Point(206, 21); } Нужно чтобы все 10 кнопок реагировали на курсор именно так. Какой подход для решения этой задачи будет являться наиболее оптимальным? Не хотелось бы писать подобные строки кода для каждой кнопки. |
16.02.2013, 09:15 | #2 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,882
|
Надо вычислить для каждой кнопки , куда её сдвигать при наведении относительно неё самой, что-то типа
Код:
Потом всем кнопкам назначить один и тот же этот обработчик , можно в коде , обычно это модуль Form1.Designer.cs (форма может быть и другая) Код:
Более гуманно это делается так - выделяются все кнопке в дизайнере формы , открываются их свойства, закладка событий (маленькая жёлтая молния) - и там в строке MouseLeave выбрать обработчик для отведения и в строке MouseMove - для наведения - так они назначаться всем кнопкам разом. После этого надо лишь в обработчике заменить конкретную кнопку (button5 у Вас) на (Button) sender. В целом можно примерно так сделать Код:
Такой подход позволит все кнопки обрабатывать в едином стиле. Код не проверял, прямо тут набрал, возможны опечатки. ПС. Желательно поизучать литературу, а то будете постоянно на форумах спрашивать ? Неудобно и долго, плюс иногда не отвечают или отвечают не то. "Хочешь что-то сделать - сделай это сам" ПС2. Код надо оформлять при набирании поста - кнопочкой # |
16.02.2013, 15:11 | #3 |
Регистрация: 03.10.2009
Сообщений: 9
|
Спасибо за ответ и советы!
Добился желаемого подпрыгивания кнопок при наведении курсора. Правда, пришлось добавить проверку на необходимость изменения позиции, поскольку, пока курсор передвигался по поверхности кнопки, её позиция пересчитывалась. Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Тема для курсовой работы C#, WinForms, GDI++, ADO.NET, WPF. | AIR_3 | Помощь студентам | 0 | 28.11.2012 17:23 |
Пагинатор для WinForms | mixa_go | Windows Forms | 0 | 07.12.2011 18:03 |
найти нужный control для WinForms приложения | Glen | WPF, UWP, WinRT, XAML | 2 | 18.10.2011 17:19 |
Сделать установщик для WinForms. Не запускается на другом компе | MakTpaxep | Windows Forms | 7 | 20.09.2010 20:47 |
Массив кнопок в WinForms | N1KeL | Windows Forms | 3 | 24.05.2010 22:53 |