簡體   English   中英

限制winforms中復選框控件的可點擊區域

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM