在 C# 上带有 winforms 的 Visual Studio 2010 中,我使用 astatusStrip
作为工具提示查看器。对于大多数情况Controls
,我正在使用该属性buttons
,将其转换为字符串,并将其作为文本注入with 事件中;字符串被替换为。textBoxes
Tag
statusStrip
MouseEnter
MouseLeave
我希望能够对 做同样的事情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
?我能做些什么来纠正这种情况?