在TabPage标题旁边的区域中获取鼠标单击

问题描述 投票:0回答:1

我试图在自定义TabControl中处理MouseClicks。如果用户点击TabPage上方区域的任何地方,我至少需要处理MouseDown和MouseUp。显然,它可以点击Tab键。但是,Tabs旁边似乎有一个“Dead”区域,它不会触发MouseDown事件。

enter image description here

MouseMove()正在触发。没有其他鼠标/点击事件。我已经为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");
        }
    }
c# winforms tabcontrol
1个回答
0
投票

检查容器的MouseDown事件:

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.