Сделайте так, чтобы ярлык участвовал в управлении вкладками
У меня есть пользовательский элемент управления, который наследует от Label
и имеет ControlStyle.Selectable
установлен в true
,
Элемент управления получает фокус, когда пользователь нажимает на него, но не получает, если пользователь вкладывает данные из другого элемента управления.
Даже когда у меня есть форма, заполненная только элементами управления такого типа, ни один из них не получает фокус при помощи вкладок.
Как я могу сделать мой Label
получить фокус с помощью вкладок?
2 ответа
Может быть, проще сделать это TextBox
, установить BorderStyle
в None
, установить BackColor
в Control
и установить ReadOnly
в True
, Это должно создать видимость ярлыка, но все же позволить ему вставлять ярлыки для фокусировки.
Обновление похоже на комбинацию 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);
}
}