J'ai conçu le code suivant pour afficher la propriété Tag d'un contrôle au passage de la souris. Le code fonctionne correctement pour les contrôles standard tels que Labels et TextBox, mais je ne peux pas le faire fonctionner pour mes MenuItems (plus précisément ToolStripMenuItems). Pourriez-vous s'il vous plaît jeter un oeil à mon code et me dire ce que j'ai mal fait? Merci d'avance!Définition du texte de la barre d'état dans Hover de la souris - Fonctionne avec les contrôles mais pas les éléments de menu
public void Form1_Load(object sender, EventArgs e)
{
...
this.addEventsToAllComponents(this);
}
private void addEventsToAllComponents(Component component)
{
if (component is MenuItem)
{
MenuItem menuItem = component as MenuItem;
menuItem.Select += new EventHandler(menuItem_Select);
}
else if (component is Control)
{
Control ctrl = component as Control;
foreach (Control control in ctrl.Controls)
{
control.MouseEnter += new EventHandler(this.control_MouseEnter);
control.MouseLeave += new EventHandler(this.control_MouseLeave);
if (control.HasChildren)
addEventsToAllComponents(control);
}
}
}
private void menuItem_Select(object sender, EventArgs e)
{
MenuItem menuItem = sender as MenuItem;
if (menuItem.Tag.ToString().Length > 0)
this.toolStripStatusLabel1.Text = menuItem.Tag.ToString();
}
private void control_MouseEnter(object sender, EventArgs e)
{
Control control = sender as Control;
if (control.Tag.ToString().Length > 0)
this.toolStripStatusLabel1.Text = control.Tag.ToString();
}
private void control_MouseLeave(object sender, EventArgs e)
{
if (this.toolStripStatusLabel1.Text.ToString().Length > 0)
this.toolStripStatusLabel1.Text = "";
}
Merci M-Peror! Cela a fait l'affaire. Tu es le (wo) homme !!! Je suppose que j'ai encore beaucoup à apprendre en ce qui concerne VS08, C# et WinForms. Je –
dû ajouter ce qui suit à votre code: "else if (contrôle est ToolStrip) { ToolStrip ts = commande ToolStrip; AddEventsToAllToolStripItems (ts.Items);} ". –