2

我已将 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 处理程序中,我可以将控件分配给私有类变量,但我认为通过一些我目前忽略的属性有一种标准方式。

提前致谢!

4

0 回答 0