2014-03-31 43 views
2

我創建了一個自定義複選框控件,並繼承了System.Windows.Forms.CheckBox.I的類,並將此控件的dock屬性設置爲Top。我向控件添加了一些文本。控制有一些空的空間。現在,如果點擊空白空間,該複選框正在工作。我需要限制可點擊區域的空白空間。限制winforms中複選框控件的可點擊區域

下面是我試過,

public class MyCheckBox : System.Windows.Forms.CheckBox 
{ 
    private int boxWidth = 15; 

    protected override void OnClick(EventArgs e) 
    { 
     Point mouseLocation = this.PointToClient(Control.MousePosition); 
     if (mouseLocation.X > boxWidth) 
      return; 

     base.OnClick(e); 
    } 
} 

上的複選框控制箱點擊時,這是工作的罰款。但我需要將文本區域添加到可點擊區域。

+1

分享你試過的任何東西。 – Jay

回答

1

如果你想讓你的用戶玩「複選框狙擊手」(可點擊區域很大,出於某種原因),你可以考慮放置一個沒有文字的複選框,將其大小調整到最小可能的大小,並使用單獨的標籤。

1

如果您不希望空白區域爲「可點擊」,請勿將其停靠在表單頂部。如果您在頂部停靠標準CheckBox,則會看到相同的效果。命中區域成爲表格的整個寬度。

只需將控件置於屏幕頂部Dock設置爲None

或者將Panel停靠在屏幕的頂部,然後將您的自定義CheckBox控件放在該屏幕中。

+0

感謝您撰寫格蘭特, –

+0

文字可能會動態變化,因此也會變長。所以尺寸不能設置爲固定尺寸。這就是爲什麼我將dock屬性設置爲Top。 –

+0

只需設置'AutoSize = True',就像您使用標準CheckBox一樣。 –