C# 我可以删除TabControl上选项卡上的点焦点矩形吗?

C# 我可以删除TabControl上选项卡上的点焦点矩形吗?,c#,.net,winforms,focus,tabcontrol,C#,.net,Winforms,Focus,Tabcontrol,我有一个选项卡控件,需要删除选定选项卡周围的虚线焦点矩形 我已将TabControl的TabStop属性设置为false。但是,如果单击某个选项卡并按选项卡键,则该选项卡名称周围会出现虚线矩形 我尝试过创建自己的TabControl,并尝试了以下方法 class MyTabControl : TabControl { public MyTabControl() { TabStop = false; DrawMode

我有一个选项卡控件,需要删除选定选项卡周围的虚线焦点矩形

我已将TabControl的TabStop属性设置为false。但是,如果单击某个选项卡并按
选项卡
键,则该选项卡名称周围会出现虚线矩形

我尝试过创建自己的
TabControl
,并尝试了以下方法

class MyTabControl : TabControl
{
        public MyTabControl()
        {
            TabStop = false;
            DrawMode = TabDrawMode.OwnerDrawFixed;
            DrawItem += new DrawItemEventHandler(DoMoreTabControl_DrawItem);
            Invalidate();
        }
}
但是,虚线矩形仍会出现

我还尝试重写
MyTabControl.OnPaint()
方法,但没有帮助


有没有办法做到这一点?

是的,DrawItem事件。你没有贴出来,不可能猜出有什么问题。只需确保在复制MSDN示例代码时不会调用
e.DrawFocusRectangle()
。只要删除语句就足够了。考虑使用不同的背景颜色或文本字体样式作为替代,这样焦点提示不会完全丢失。

< P>将焦点设置为Tab,而不是头(如此)

您将在毫秒内看到虚线矩形,一旦执行上述事件,它就会消失

此外,要删除加载时默认选定选项卡的虚线矩形

private void tabControl1_Enter(object sender, EventArgs e)
{
    (sender as TabControl).SelectedTab.Focus();
}
这两个变化对我都有效!
希望它能帮助别人。

你为什么要隐藏它?有什么令人信服的理由吗?这是一个很好的应用程序示例:Visual Studio和Microsoft SQL Server Management Studio。还有网络浏览器。选项卡上没有焦点矩形。Ctrl+tab显示为从键盘导航选项卡的公认方式。
private void tabControl1_Enter(object sender, EventArgs e)
{
    (sender as TabControl).SelectedTab.Focus();
}