在 C# 上带有 winforms 的 Visual Studio 2010 中,我使用 astatusStrip作为工具提示查看器。对于大多数情况Controls,我正在使用该属性buttons,将其转换为字符串,并将其作为文本注入with 事件中;字符串被替换为。textBoxesTagstatusStripMouseEnterMouseLeave
我希望能够对 做同样的事情MenuItems,但似乎它们的处理方式Controls不同。我已经设置了一个“调试”字符串,这样我就知道何时Tag注入失败,这就是我知道MenuItems没有被相同处理的方式。
两种方法的代码tooltipEnter如下menuItemTooltipEnter:
//Injects sender tag as string into status strip (used for Controls)
private void tooltipEnter(object sender, EventArgs e)
{
var c = sender as Control;
if (c == null) { toolStripStatusLabel1.Text = "null(0)"; return; }
toolStripStatusLabel1.Text = Convert.ToString(c.Tag);
}
//Injects sender tag as string into status strip (used for MenuItems)
private void menuItemTooltipEnter(object sender, EventArgs e)
{
var c = sender as MenuItem;
if (c == null) { toolStripStatusLabel1.Text = "null(0)"; return; }
toolStripStatusLabel1.Text = Convert.ToString(c.Tag);
}
如您所见,每当我Control用鼠标输入“”时,字符串都会被注入到statusStrip. 我有这个代码工作。
但是当将menuItem事件mouseEnter指向tooltipEnter或menuItemTooltipEnter时,两者都将“null(0)”注入statusStrip.
有人可以告诉我为什么menuItem Tags不以相同的方式处理,比如说,textBox Tags?我能做些什么来纠正这种情况?