Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2008, 16:26   #1
HunterMan
Пользователь
 
Регистрация: 01.04.2008
Сообщений: 58
По умолчанию Перехват сообщения от кнопки...

Скажем есть форма и диалог.
На диалоге есть несколько кнопок.

Как узнать главной форме какая кнопка нажата?
Скажем нужно при нажатии button1 чтобы перерисовывалась, к примеру,
основная форма. Как я понимаю в обработке Ивента button1_click нужно послать сообщение форме(к примеру WM_PAINT).

Как это сделать? может есть примерчик?
HunterMan вне форума Ответить с цитированием
Старый 08.12.2008, 19:33   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Как-то так:
Код:
private void button1_Click(object sender, EventArgs e)
{
  if (sender == button1) // Если нажали button1. Если этот обработчик "привязывается" к одной кнопке, то проверка не нужна
  {
    Refresh(); // перерисовываем форму
  }
}
pu4koff вне форума Ответить с цитированием
Старый 08.12.2008, 21:38   #3
HunterMan
Пользователь
 
Регистрация: 01.04.2008
Сообщений: 58
По умолчанию

Я забыл написать, но есть несколько диалоговых окон! И в каждом есть button1.

А в том, что вы написали не разберусь: резве если

private void button1_click(...), то разве (sender == button1)??? может быть другой???
HunterMan вне форума Ответить с цитированием
Старый 08.12.2008, 21:53   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

обработчик private void button1_click можно повесить на обработку нажатий нескольких кнопок. и не только кнопок и не только нажатий.
параметр sender указывает на отправителя этого сообщения, т.е. в данном случае это будет ссылка на кнопку, на которую нажали.

А так либо из диалоговых окон при нажатии кнопок вызывать соответствующий метод главной формы, либо прописывать примерно так:

Код:
диалоговое_окно.кнопка.Click += EventHandler(главное_окно.button1_click);
при нажатии на кнопку диалогового окна будет вызван метод главной формы button1_click. В качестве параметра sender будет соответственно ссылка на кнопку, на которую нажали, и по нему сможете определить на какую именно кнопку нажали.

ЗЫ. Если у Вас в диалогах кнопки OK, Отмена и т.п. то лучше посмотреть в сторону метода: ShowDialog и у кнопок указать соответствующий DialogResult
pu4koff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сообщения в Delphi Роман777 Помощь студентам 19 24.11.2008 15:27
UCOZ: Кнопки кнопки на изображении ReDuX HTML и CSS 19 25.04.2008 02:39
Сообщения Serg12345678 Общие вопросы C/C++ 1 12.04.2008 14:07
триггерные кнопки и кнопки переключатели в DELPHI MARGO Помощь студентам 3 12.11.2007 17:35