Как определить, какой ListView был нажат правой кнопкой мыши? - PullRequest
1 голос
/ 12 ноября 2011

У меня есть 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 ]

1 голос
/ 12 ноября 2011
0 голосов
/ 12 ноября 2011

Вы пробовали следующее?

ListView listViewClicked = (ListView) sender;

РЕДАКТИРОВАТЬ (после комментариев)

sender - это ToolStripMenuItem, поэтому используйте приведение для его получения, затем используйте метод GetCurrentParent для получения ContextMenuStrip, содержащий элемент, а затем используйте свойство SourceControl, чтобы получить элемент управления, отображающий ваш меню, предложенное @ sq33G :

ListView lv = ((ToolStripMenuItem) sender).GetCurrentParent().SourceControl;

Может быть, вам также понадобится преобразовать возвращаемое значение GetCurrentParent в ContextMenuStrip.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...