2011-03-07 55 views
7

我有一個選項卡控件,需要刪除選定選項卡周圍的虛線焦點矩形。我可以通過TabControl上的選項卡刪除虛線焦點矩形嗎?

我已經將TabControl的TabStop屬性設置爲false。但是,如果我點擊一個標籤並按下Tab鍵,虛線矩形將出現在標籤名的周圍。

我試圖創造我自己的TabControl並試用了此

class MyTabControl : TabControl 
{ 
     public MyTabControl() 
     { 
      TabStop = false; 
      DrawMode = TabDrawMode.OwnerDrawFixed; 
      DrawItem += new DrawItemEventHandler(DoMoreTabControl_DrawItem); 
      Invalidate(); 
     } 
} 

但是,仍然出現虛線框。

我也試過重寫MyTabControl.OnPaint()的方法,但它沒有幫助。

有什麼辦法可以達到這個目的嗎?

+0

你爲什麼要隱藏它?任何令人信服的理由? – Pradeep

回答

1

是的,DrawItem事件。你沒有發佈,不可能猜到它有什麼問題。只要確保不要撥打e.DrawFocusRectangle(),可能在複製MSDN示例代碼時出現。簡單地刪除該陳述就足夠了。考慮使用不同的背景顏色或文本字體樣式作爲替代方案,以便焦點提示不會完全丟失。

+2

這是一個很好的例子:Visual Studio和Microsoft SQL Server Management Studio。也是網絡瀏覽器。標籤上沒有焦點矩形。按Ctrl + Tab鍵以可接受的方式顯示從鍵盤導航標籤。 –

0

將焦點設置選項卡,而不是頭(像這樣)

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(); 
} 

這兩個變化工作對我來說刪除虛線框默認選定的選項卡!希望它有助於某人。

相關問題