限制winforms中复选框控件的可单击区域

时间:2014-03-31 11:18:19

标签: c# winforms

我创建了一个自定义复选框控件并从System.Windows.Forms.CheckBox继承该类。我将此控件的dock属性设置为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);
    }
}

单击复选框控件的框时,此功能正常。但我需要将文本区域添加到可点击区域。

2 个答案:

答案 0 :(得分:1)

如果您希望用户播放“复选框狙击手”(由于某种原因,可点击区域很大),您可以考虑只放置一个没有文字的复选框,将其调整为尽可能小的尺寸并使用单独的标签显示文字

答案 1 :(得分:1)

如果您不希望空白区域为“可点击”,则不要将其停靠在表单顶部。如果您将标准CheckBox停靠在顶部,则会看到相同的效果。命中区域成为表单的整个宽度。

只需将控件置于屏幕顶部,Dock设置为None

或将Panel停靠在屏幕顶部,然后将自定义CheckBox控件放入其中。

相关问题