我有一个标签控件,需要删除所选标签周围的虚线焦点矩形。
我已将TabControl的TabStop属性设置为false。但是,如果我单击选项卡并按Tab
键,则会在标签名称周围显示虚线矩形。
我尝试创建自己的TabControl
并尝试了这个
class MyTabControl : TabControl
{
public MyTabControl()
{
TabStop = false;
DrawMode = TabDrawMode.OwnerDrawFixed;
DrawItem += new DrawItemEventHandler(DoMoreTabControl_DrawItem);
Invalidate();
}
}
但是,仍然会出现虚线矩形。
我也尝试覆盖MyTabControl.OnPaint()
方法,但它没有帮助。
有没有办法实现这个目标?
答案 0 :(得分:3)
将焦点设置为标签而不是标题(如此)
private void tabControl1_Click(object sender, EventArgs e)
{
(sender as TabControl).SelectedTab.Focus();
}
你会看到一个毫秒的虚线矩形,一旦上述事件被执行它就会消失。
此外,要删除加载时默认选定选项卡的虚线矩形
private void tabControl1_Enter(object sender, EventArgs e)
{
(sender as TabControl).SelectedTab.Focus();
}
这些改变对我有用! 希望它对某人有帮助。
答案 1 :(得分:2)
是的,DrawItem事件。你没有发布它,不可能猜出它有什么问题。只需确保在复制MSDN示例代码时不要调用e.DrawFocusRectangle()
。简单地删除该陈述就足够了。考虑使用不同的背景颜色或文本字体样式作为替代,因此焦点提示不会完全丢失。