如何识别哪个ListView被右键单击?

时间:2011-11-12 19:02:53

标签: c# winforms events

我已将ContextMenu分配给两个ListView。如何知道它使用了哪个ListView所以我可以应用正确的方法?我想sender在这里很重要,但我该如何使用呢?如何知道此时sender是什么?

private void contextMenuDokumentyDodaj_Click(object sender, EventArgs e) {
    var dokumenty = new DocumentsGui(varKlienciID, varPortfelID);
    dokumenty.Show();
    dokumenty.FormClosed += varDocumentsGui_FormClosed;
}

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

您是否尝试过以下操作?

ListView listViewClicked = (ListView) sender;

编辑(评论后)

senderToolStripMenuItem,因此请使用强制转换来获取它,然后使用GetCurrentParent方法获取包含该项目的ContextMenuStrip,然后使用{{ 1}}属性以获取显示菜单的控件,如 @ sq33G 所示:

SourceControl

也许您还需要将ListView lv = ((ToolStripMenuItem) sender).GetCurrentParent().SourceControl; 返回值转换为GetCurrentParent