在 TabPage Headers 旁边的区域中获取鼠标点击
Getting Mouse Clicks in the area next to TabPage Headers
我正在尝试在自定义 TabControl 中处理鼠标点击。如果用户单击 TabPage 上方区域的任何位置,我至少需要处理 MouseDown 和 MouseUp。显然,它可以单击选项卡。但是,选项卡旁边似乎有一个 "Dead" 区域,它不会触发 MouseDown 事件。
MouseMove() 正在触发。其他 Mouse/Click 个事件中只有 none 个。我已将多选项卡选择模式添加到 TabControl,我希望它们能够单击单个选项卡或选项卡外部以取消选择所有 "selected" 选项卡。需要帮助找出最简单的解决方案。
如果您需要更多信息或说明,请告诉我们。
编辑: 我能够使用 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");
}
}
查看容器的MouseDown事件:
protected override void OnMouseDown(MouseEventArgs e) {
base.OnMouseDown(e);
if (tabControl1.Bounds.Contains(e.Location)) {
MessageBox.Show("tab space clicked");
}
}
如果 TabControl 在面板中,那么您将不得不使用该面板的 MouseDown 事件。
我正在尝试在自定义 TabControl 中处理鼠标点击。如果用户单击 TabPage 上方区域的任何位置,我至少需要处理 MouseDown 和 MouseUp。显然,它可以单击选项卡。但是,选项卡旁边似乎有一个 "Dead" 区域,它不会触发 MouseDown 事件。
MouseMove() 正在触发。其他 Mouse/Click 个事件中只有 none 个。我已将多选项卡选择模式添加到 TabControl,我希望它们能够单击单个选项卡或选项卡外部以取消选择所有 "selected" 选项卡。需要帮助找出最简单的解决方案。
如果您需要更多信息或说明,请告诉我们。
编辑: 我能够使用 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");
}
}
查看容器的MouseDown事件:
protected override void OnMouseDown(MouseEventArgs e) {
base.OnMouseDown(e);
if (tabControl1.Bounds.Contains(e.Location)) {
MessageBox.Show("tab space clicked");
}
}
如果 TabControl 在面板中,那么您将不得不使用该面板的 MouseDown 事件。