Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Маленькая проблемка с делегатом... / 7 сообщений из 7, страница 1 из 1
05.02.2004, 15:16
    #32399535
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Маленькая проблемка с делегатом...
private void pboxClicked(object sender, EventArgs e)
{
MessageBox.Show("Кликнули на PictureBox");
}

for (int i=0; i<4; i++)
{
System.Windows.Forms.PictureBox pb= new PictureBox();// создаю объект
pb.Name="pbox" + i.ToStr();
.
.// прочие свойства типа Location и т.п.
.
pb.Click+=new System.EventHandler(pboxClicked); // задействую делегата
}

В результате выпонения этого кода: При клике на любой бокс получаю выше описанное сообщение. Всё почти замечательно, только вот хотелось бы знать на какой именно бокс я кликнул.
Как это сделать? Как добраться до его свойства Name?
...
Рейтинг: 0 / 0
05.02.2004, 15:34
    #32399575
snake
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Маленькая проблемка с делегатом...
object sender
...
Рейтинг: 0 / 0
05.02.2004, 15:45
    #32399602
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Маленькая проблемка с делегатом...
Да я его уже крутил и так и сяк - не получается до имени добраться.
Например: label1.Text=sender.GetType().Name;
выдаёт pictureBox, а вовсе не pbox1 или pbox2 и т.д.
Подскжите чего-нить.
...
Рейтинг: 0 / 0
05.02.2004, 16:13
    #32399675
Alkash
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Маленькая проблемка с делегатом...
PictureBox pb=(PictureBox)sender;
MessageBox.Show (pb.Name);
...
Рейтинг: 0 / 0
05.02.2004, 16:25
    #32399714
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Маленькая проблемка с делегатом...
Прикольно. А я "добил" объект sender :)

так тоже хорошо:

label1.Text=sender.GetType().GetProperty("Name").GetValue(sender,null);

Всем спасибо.
...
Рейтинг: 0 / 0
05.02.2004, 17:05
    #32399816
qu-qu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Маленькая проблемка с делегатом...
Я тут подумал, а не проще ли прототип обработчика написать так:

private void pboxClicked( PictureBox sender, EventArgs e)
{
MessageBox.Show("Кликнули на PictureBox");
}

Тогда - никаких преобразований от типа object не надо делать для sender -а... и свойство Name - вытащится без всяких "извращений".

:-))
...
Рейтинг: 0 / 0
05.02.2004, 18:12
    #32399937
M234
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Маленькая проблемка с делегатом...
>Я тут подумал, а не проще ли ..

Может и проще, но не всегда подходит, допустим если объекты не однотипные...
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Маленькая проблемка с делегатом... / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]