[英]Restrict clickable area of a checkbox control in winforms
我創建了一個自定義復選框控件並從 System.Windows.Forms.CheckBox 繼承了該類。我將此控件的停靠屬性設置為 Top。 我在控件中添加了一些文本。 控件有一些空白空間。 現在,如果單擊空白區域,此復選框將起作用。 我需要限制可點擊區域的空白區域。
以下是我嘗試過的,
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);
}
}
單擊復選框控件的框時,這工作正常。 但我也需要將文本區域添加到可點擊區域。
如果您希望您的用戶玩“復選框狙擊手”(出於某種原因,可點擊區域很大),您可以考慮只放置一個沒有文本的復選框,將其調整為盡可能小的尺寸並使用單獨的標簽顯示文本。
如果您不希望空白區域“可點擊”,則不要將其停靠在表單頂部。 如果將標准CheckBox
停靠在頂部,您將看到相同的效果。 命中區域成為表單的整個寬度。
只需將控件放在屏幕頂部,並將Dock
設置為None
。
或者將Panel
停靠在屏幕頂部,然后將自定義CheckBox
控件放在其中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.