Рейтинг:
7
________________
public static void setButtons(Form f)
{
foreach (Control c in f.Controls)
{
Button btn = c as Button;
if (c == btn)
{
btn.Click += btn_Click;
}
}
}
static void btn_Click(object sender, EventArgs e)
{
System.Media.SystemSounds.Beep.Play();
}
akosisugar
я вызываю метод в событии form_load.. ваш код не работает
________________
Я вызываю setButtons(Form f) из конструктора формы:
публичный частичный класс Form2 : форма
{
публичная форма 2(object dataToShow)
{
метод InitializeComponent();
//dataGridView1.Источник данных = dataToShow;
setButtons(это);
}
public static void setButtons(форма f)
{
foreach (Control c in f.Controls)
{
Кнопка btn = c as кнопка;
если (c == btn)
{
БТН.Нажмите кнопку += btn_Click;
}
}
}
статический недействительным btn_Click(объект отправителя, EventArgs в электронной)
{
Система.Средства массовой информации.SystemSounds.Звуковой сигнал.Играть();
}
}
Вы понимаете, что такое событие в .NET?
________________
Вы можете вызвать "setButtons(Form f)" из любого места, но вы должны отправить в качестве параметра правильную форму. В этом-то все и дело. В моем примере я посылаю "это" из конструктора формы, так что это наверняка будет правильный объект.
akosisugar
да, я действительно понимаю событие..
извините, извините ... теперь он работает..
________________
Все в порядке. В C++ это был указатель на функцию, простое 32-битное целое число (адрес в памяти), в .NET он почти такой же, но лучше защищен(по имени и параметрам).
Таким образом, событие в классе-это коллекция (может быть нулевой, если она пуста) "указателей на функцию".
akosisugar
еще раз спасибо, сэр!