在TabPage页眉旁边的区域中获得鼠标单击

时间:2019-02-18 17:38:50

标签: c# winforms tabcontrol

我正在尝试在自定义TabControl中处理MouseClicks。如果用户单击TabPage上方区域中的任何位置,则至少需要处理MouseDown和MouseUp。显然,单击选项卡即可。但是,选项卡旁边似乎有一个“死”区域,它不会触发MouseDown事件。

enter image description here

MouseMove()正在触发。其他的Mouse / Click事件均不存在。我已经在TabControl中添加了一个多选项卡选择模式,希望它们能够单击单个选项卡或在选项卡外部以取消选择所有“选定”选项卡。需要帮助找出最简单的解决方案。

如果您需要更多信息或澄清,请告知。

编辑:我能够使用LarsTech的答案。非常感谢。

在我的控制下,我添加了:

    protected override void OnHandleCreated(EventArgs e)
    {
        base.OnHandleCreated(e);

        Parent.MouseDown += testMousedown;
    }

    private void testMousedown(object sender, MouseEventArgs e)
    {
        if (Bounds.Contains(e.Location))
        {
            MessageBox.Show("tab space clicked");
        }
    }

1 个答案:

答案 0 :(得分:0)

检查容器的MouseDown事件:

protected override void OnMouseDown(MouseEventArgs e) {
  base.OnMouseDown(e);

  if (tabControl1.Bounds.Contains(e.Location)) {
    MessageBox.Show("tab space clicked");
  }
}

如果TabControl位于面板中,则必须使用该面板的MouseDown事件。