WInForms. Назначить функцию onClick форме

129
03 апреля 2021, 05:10
Dictionary<MyForm, PictureBox[]> gallery = ...;

void getImagesToSecondForm(PictureBox[] pics){
     fp2.Controls.Clear();
     foreach (var pic in pics)
        {
            fp2.Controls.Add(pic);
        }
}
foreach (var item in gallery)
{
   //Как тут назначить?
   item.Key.Click += getImagesToSecondForm(item.Value) ;
}
Answer 1

Если вы напишите item.Key.Click += и нажмете TAB в Visual Studio, то та вам создаст метод-обработчик, который обязательно должен принимать два значения:

private void Key_Click(object sender, EventArgs e)
{
    //Реализация.
}

Эти значения обязательны, вы от них не избавитесь. Вот внутри этого метода вы уже и пишете что вам необходимо.

Подпись на события также возможна при помощи так называемой "лямбды", она значительно сокращает код и тут не обязательно создавать дополнительный метод. Метод выше можно записать как:

item.Key.Click += (s, e) => 
{
    //Реализация.
};

Сокращаем еще, дописываем ваш метод и получаем следующее:

item.Key.Click += (s, e) => getImagesToSecondForm(item.Value);
READ ALSO
Поиск через group by

Поиск через group by

Пытаюсь реализовать поиск в DataGrid используя оператор group by, но не получается реализовать вывод содержимого в DataGridВод код: Событие поиска:

96
Как перенести элемент на задний план WPF C#

Как перенести элемент на задний план WPF C#

Установил библиотеку MediaPlayerWpf и возникла проблема при наложении на передний план других объектовXaml такого вида

104
как получить нестатический обьект в статическом методе?

как получить нестатический обьект в статическом методе?

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

118
Как вывести последние три элемента модели из базы данных?

Как вывести последние три элемента модели из базы данных?

Проблема такая: есть модель "News" с параметрами "NewsId", "Title" и "Text"В представлении я вывожу эти новости:

127