Question

J'essaie d'ajouter dynamiquement des éléments à une bande d'outils avec le code suivant:

contextMenuStrip.Items.Add(string.Format("{0} kB/s", currSpeed), null, new EventHandler(Connection.SetSpeed));

Le problème est que je dois passer un paramètre à Connection.SetSpeed: currSpeed ??(int). Comment puis-je faire cela?

Merci pour votre temps. Cordialement.

Était-ce utile?

La solution

L'appel de add vous renverra un ToolStripItem. Si vous définissez sa propriété Tag comme variable currSpeed, vous devriez pouvoir extraire ce ToolStripItem via l'argument sender de la méthode Connection.SetSpeed ??lorsque l'élément est cliqué ...

ToolStripItem item = contextMenuStrip.Items.Add(string.Format("{0} kB/s", currSpeed), null, new EventHandler(Connection.SetSpeed));
item.Tag = currSpeed;

void Connection.SetSpeed (object sender, EventArgs e)
{
    ToolStripItem item = (ToolStripItem)sender;
    int currSpeed = (int)item.Tag;

    // Do stuff...
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top