我已将ContextMenuStrip附加到TabControl并为OnMouseDown设置了一个处理程序,它执行以下操作:
if (e.Button != MouseButtons.Right) {
return;
}
for (var i = 0; i < tabControl1.TabCount; ++i) {
var point = new Point(e.X, e.Y);
if (tabControl1.GetTabRect(i).Contains(point)) {
tabPageContextMenu.Show(tabControl1, point);
}
}
这正确地显示了ContextMenuStrip但是,在ContextMenuStrip包含的MenuItem的Click事件中,我似乎无法访问实际生成ContextMenuStrip的底层TabControl或TabPage。
然后问题变成了:我如何才能最好地访问原始控件?显然,在MouseDown处理程序中,我可以将控件分配给私有类变量,但我假设有一种标准方式通过我目前忽略的某些属性。
提前致谢!