powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Передача в параметрах функции другие функции.
2 сообщений из 2, страница 1 из 1
Передача в параметрах функции другие функции.
    #32695522
Astakhov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть класс, наследник CollectionBase, элементами ее является отписание кнопок или пунктов меню.
Хотелось бы перенести например создание пунктов меню MainMenu формы в сам класс.
Примерно следующий код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public void CreateMenu(MenuItem MI, <фиг его знает> mn_Click)
{
	for (int i = 0; i < this.Count; i++)
	{
		MenuItem mn = new MenuItem();
		mn.Index = i;
		mn.Text = this[i].Name;
		mn.Shortcut = this[i].HotKey;
		mn.Click += new System.EventHandler(mn_Click);
		MI.MenuItems.Add(mn);
	}
}
Как передать функцию mn_Click?
Можно конечно создать делегата, передавать отдельно и т.д. ...
Но ...
1. Некрасиво.
2. Когда и как очищать делегата? Имеется в виду, что если несколько раз будет вызываться функция и надо будет передавать другие функции отклика.
...
Рейтинг: 0 / 0
Передача в параметрах функции другие функции.
    #32695603
Astakhov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЗАРАБОТАЛО!!! :-)))
Один из вариантов решения.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public void CreateMenu(MenuItem MI, System.EventHandler mn_Click)
{
	for (int i = 0; i < this.Count; i++)
	{
		MenuItem mn = new MenuItem();
		mn.Index = i;
		mn.Text = this[i].Name;
		mn.Shortcut = this[i].HotKey;
		mn.Click += mn_Click;
		MI.MenuItems.Add(mn);
	}
}

Соответственно вызов
Код: plaintext
ButtonsCollect.CreateMenu(mnAction, new System.EventHandler(mn_Click));
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Передача в параметрах функции другие функции.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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