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