【发布时间】:2012-02-23 09:58:31
【问题描述】:
我已将 contextMenuStrip 分配给两个 ListBox 控件的相同上下文菜单属性。 我想确定其中哪些激活了上下文菜单。 因为我必须根据运行时单击的控件来更改一些条目。
private void copyNotesToClipboardStripMenu_Click(object sender, EventArgs e)
{
ListBox cntrl = conMenuNotes.SourceControl as ListBox;
//cntrl does not contain info about which ListBox was clicked :((
//check which ListBox was clicked
if (/*oneListBox*/)
{
//do something
}
if(/*anotherLiskBox*/)
{
//do something
}
}
当我阅读另一篇文章时,它应该是 Label 属性中单击的控件的名称。
我看到 cntrl.Label 是 null
我做错了什么? 建议我如何解决这种歧义。 谢谢!
【问题讨论】:
-
也许应该以另一种方式实现,以便能够确定哪个控件激活了 contextMenu ...
-
只是比较,if (ctrl == listBox1)。或者使用列表框控件上的 Tag 属性为它们提供自定义数据,您可以稍后再找到。