上下文菜单 - 如何知道哪个控件激活了它

时间:2013-05-25 14:50:49

标签: c# listview contextmenu mousedown

我制作了一个通过MouseDown事件激活的上下文菜单。此事件检查用户是否单击了右键,如果是,则打开菜单。我使用相同的事件为列表框和列表视图打开相同的上下文菜单。有没有办法检查哪一个激活了MouseDown事件?

编辑:我会更具体一点。我可以告诉哪个控制器从事件本身激活了事件..我想知道哪个控制器从已被点击的上下文菜单项激活了该事件。

2 个答案:

答案 0 :(得分:2)

如果你有类似的东西:

private void MouseDown(object sender, MouseButtonEventArgs e)
{

}

您可以查看sender

if(sender is ListView)
{
    //event fired by ListView
} 

if(sender is ListBox)
{
    //event fired by ListBox
} 

答案 1 :(得分:0)

我通过使用上下文菜单的Tag属性解决了它。我把那个触发事件的发送者对象放在那里,然后我就可以了:

ListView lv = resultsContextMenu.Tag as ListView;
if (lv == null) //listbox was the one to call the mouse down event
{ //do stuff }

此代码在用户选择的菜单项本身内调用