使标签参与控件选项卡
本文关键字:选项 控件 标签 | 更新日期: 2023-09-27 18:25:46
我有从Label
继承的自定义控件,并将ControlStyle.Selectable
设置为true
。
当用户单击控件时,控件将获得焦点,但如果用户从另一个控件使用 Tab 键,则控件不会获得焦点。
即使我有一个仅由该类型的控件填充的表单,它们也不会通过制表符获得焦点。
如何通过 Tab 键使Label
获得焦点?
将其设为TextBox
可能会更容易,将BorderStyle
设置为 None
,将BackColor
设置为 Control
并将ReadOnly
设置为 True
。 这应该提供标签的外观,但仍允许将其按 Tab 键固定为焦点。
更新 看起来 SetStyle(ControlStyles.Selectable, true);
和 TabStop = true;
的组合,您可以使用 Tab 键使标签聚焦。 下面是一个简单的示例,显示它的工作原理:
public class SelectableLabel : Label
{
public SelectableLabel()
{
SetStyle(ControlStyles.Selectable, true);
TabStop = true;
}
protected override void OnEnter(EventArgs e)
{
BackColor = Color.Red;
base.OnEnter(e);
}
protected override void OnLeave(EventArgs e)
{
BackColor = SystemColors.Control;
base.OnLeave(e);
}
protected override void OnMouseDown(MouseEventArgs e)
{
this.Focus();
base.OnMouseDown(e);
}
}
将
属性Control.TabStop
设置为 true