2014-12-31 127 views
1

嘗試了大多數屬性,並沒有設法完全禁用Visual Studio中複選框的重點。有誰知道該怎麼做?如何刪除C#Visual Studio中複選框的焦點邊框?

我正在使用System.Windows.Forms.CheckBox對象。我使用圖像作爲背景,當CheckBox處於聚焦狀態時,會繪製邊框,這會使背景圖像看起來很糟糕。所以我想擺脫它......

編輯:添加圖片澄清這個問題的用意......

enter image description here

,用戶可以點擊「TAB」,然後點擊對象看它顯示爲聚焦。 這對我來說是一個問題,因爲它讓GUI看起來簡直太可怕了。

+0

是此WPF或WinForms? – Frank

+0

你是什麼意思的邊界?焦點提示?還winform或wpf? –

+0

編輯這個問題的傢伙! –

回答

5

用於處理繪畫的CheckBox控件的代碼非常精細,與Button和RadioButtion共享,支持多種樣式。它不能被覆蓋,涉及的類和方法全部是內部的

但幸運的是,你只想混亂的焦點矩形。你所要做的就是說服控制器不應該顯示它。這很簡單,爲您的項目添加一個新類並粘貼下面顯示的代碼。編譯。從工具箱的頂部放下新控件。

using System.Windows.Forms; 

class MyCheckBox : CheckBox { 
    protected override bool ShowFocusCues { 
     get { return false; } 
    } 
} 
+1

像往常一樣非常有幫助和有趣的..好奇:當你放棄了簡單的解決方案,我正在修補一個'覆蓋無效的OnPaint(PaintEventArgs pevent)'方法,至少_seems_工作正常。我發現很難爲CheckBox獲取必要的CheckBoxState,而無需繁瑣的檢查;有沒有更直接的轉換? - 另外:使用這種方式的缺陷是什麼(通過兩次調用'CheckBoxRenderer'和一個'DrawString')? (總是假設'CheckBoxRenderer'是可用的..但嘿其近2015 .. ;-)) – TaW

+0

那麼,取代「非常複雜」的代碼確實很單調:) –