2009-10-14 33 views
0

我有一個沒有指定文本的複選框。現在,只要我選中此複選框,它就不會突出顯示。我甚至嘗試在checkbox_Enter()事件中設置焦點。我在這個事件中檢查了重點,並且重點在這個複選框中。如何突出顯示,以便用戶可以知道光標在複選框中。當光標在裏面時,突出顯示一個勝利形式複選框

+0

我會做。謝謝指出。 – Rohit 2009-10-14 12:40:41

回答

0
  • 嘗試把剛剛的空間劃分的複選框

或者

  • autoSize設置爲false
  • 設置的複選框

則有可能是大小用於WinForms繪製焦點ret的地方。

否則,您必須自定義繪製複選框,或自己在複選框中繪製焦點。


不管你做什麼也不會看起來那麼好,如用戶所期望的焦點REC是圓的複選框的標籤,你希望有一個不帶標籤的複選框。

+0

如何在複選框中放置空間。你的意思是說,在checkbox_Enter()事件中。 – Rohit 2009-10-14 12:14:01

+0

沒有設置「文本」道具以包含空格。 – 2009-10-14 12:19:06

+0

可以請你告訴我如何繪製焦點矩形。我使用ControlPaint.DrawFocusRectangle(Graphics,Rectangle)。如何在checkbox_Enter()事件中獲取圖形。據我所知,它在OnPaint事件中可用。 – Rohit 2009-10-14 12:37:45

-1

其實亮點自帶的複選框而不是複選框本身

這樣的文字,如果我是你,我會把任何控制在我的複選框的背景,並給它的焦點,當我複選框重點突出,以擁有相同外觀的默認控件集錦。

這將作爲複選框高亮顯示給最終用戶。

+0

請告訴如何做到這一點。 – Rohit 2009-10-14 12:48:09

+0

-1因爲將焦點賦予另一個控件將停止空格鍵更改複選框的值。 – 2009-10-14 12:48:39

+0

這裏就是這樣,把複選框後面的複選框放大一點。 然後使他的flatStyle屬性平坦 和foreColor屬性爲您的窗體背景相同的顏色。 然後點擊按鈕的事件寫這段代碼 checkBox1.Checked =!checkBox1.Checked; *這解決了「lan Ringrose」提到的錯誤。 就是這樣 – 2009-10-14 15:57:29

0

我設法通過後述的方式

使用panel.Push是panel.Set內的複選框做一個面板,使得它看起來像周圍的checkbox.In checkbox_enter一個長方形的尺寸( )事件設置邊框

BorderStyle.FixedSingle; 

而且在checkbox_Leave()事件再次設置邊界

BorderStyle.None; 

所以這樣它會告訴用戶,重點在裏面次e複選框。

0

要使複選框突出顯示,我已經改變了獲得焦點的顏色並改變了失去焦點。

這部分是在Form1.designer.cs:

private void InitializeComponent() 
    {... 
    ckBox1.GotFocus += new System.EventHandler(checkBox_Highlight); 
    ckBox1.LostFocus += new System.EventHandler(checkBox_EndHighlight); 
    ckBox1.MouseHover += new System.EventHandler(checkBox_Highlight); 
    ckBox1.MouseLeave += new System.EventHandler(checkBox_EndHighlight); 
    } 

這部分是在Form1:

private void checkBox_Highlight(object sender, EventArgs e) 
    { 
     CheckBox control = (CheckBox)sender; 
     control.FlatStyle = FlatStyle.Flat; 
     control.ForeColor = Color.Blue; 
    } 

    private void checkBox_EndHighlight(object sender, EventArgs e) 
    { 
     CheckBox control = (CheckBox)sender; 
     if (!control.Focused) 
     { 
      control.ForeColor = DefaultForeColor; 
     } 
    } 
0

雖然Tab鍵,這使上輸入複選框下方的淡藍色的影子並在離開 - 至少在我的Windows7上:

... 
    checkBox1.Enter += new System.EventHandler(check_Enter); 
    checkBox1.Leave += new System.EventHandler(check_Leave); 
    ... 

    private void check_Enter(object sender, EventArgs e) 
    { 
     ((CheckBox)sender).BackColor = SystemColors.Highlight; 
    } 

    private void check_Leave(object sender, EventArgs e) 
    { 
     ((CheckBox)sender).BackColor = Color.Transparent; 
    } 
相關問題