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