EventHandler с настраиваемыми аргументами

Я около часа искал ответ в Google, но не нашел именно того, что ищу.

По сути, у меня есть статический класс Helper, который помогает выполнять многие вещи, которые я часто делаю в мое приложение. В этом случае у меня есть метод с именем «CreateDataContextMenu», который создает контекстное меню для данного элемента управления TreeView.

public static void CreateDataContextMenu(Form parent, TreeView owner, string dataType)
{ ... }

Владелец TreeView - это элемент управления, с которым я буду связывать свое контекстное меню.

Позже я добавляю Click событие для MenuItem следующим образом:

menuItemFolder.Click += new System.EventHandler(menuItemFolder_Click);

Проблема в том, что я хочу передать "owner" и "dataType" в качестве аргументов для события menuItemFolder_Click.

Я пробовал следующее:

menuItemFolder.Click += new System.EventHandler(menuItemFolder_Click(sender,e,owner,dataType));
(...)
private static void menuItemFolder_Click(object sender, System.EventArgs e, Treeview owner, string dataType)
{...}

Но это не так ' т работать вообще. Возможно, это было бы очень наивно с моей стороны делать это таким образом, но я пока не очень доволен обработчиком событий.

Есть идеи, как я могу это сделать? Мое первое предположение - мне нужно создать свой собственный обработчик событий для этого конкретного случая. В правильном ли я направлении иду?

11
задан Brian Tompsett - 汤莱恩 13 June 2015 в 12:03
поделиться