繁体   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