Gestionnaire d'événements avec des arguments personnalisés

J'ai été à la recherche d'une réponse pour environ une heure sur Google mais je n'ai pas trouvé exactement ce que je cherche.

En gros, j'ai une statique de la classe Helper qui permet d'effectuer de nombreuses choses que je fais souvent dans mon Application. Dans ce cas, j'ai une méthode nommée "CreateDataContextMenu" qui crée un menu contextuel sur un contrôle TreeView.

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

TreeView propriétaire est le contrôle dans laquelle j'associe mon menu contextuel.

Puis plus tard, j'ai ajouter un événement Click d'un MenuItem comme ceci:

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

Le problème que j'ai ici, c'est que je veux passer "propriétaire" et "type de données" comme arguments à la menuItemFolder_Click événement.

J'ai essayé le suivant:

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)
{...}

Mais il ne fonctionne pas du tout. Il pourrait être très naïf de ma part de le faire de cette façon mais je ne suis pas très à l'aise avec le gestionnaire d'événement encore.

Aucune idée sur comment je pourrais faire?
Ma première hypothèse est que j'ai besoin de créer mon propre Gestionnaire d'événements pour ce cas précis. Je vais dans la bonne direction avec qui?

N'est pas propriétaire contiennent une référence à la Treeview? Ou serait-il arrêter dans le menu contextuel?

OriginalL'auteur Sasha | 2011-06-23