3

から継承しLabel、にControlStyle.Selectable設定したカスタム コントロールがありtrueます。

コントロールは、ユーザーがクリックするとフォーカスを受け取りますが、ユーザーが別のコントロールからタブ移動するとフォーカスを受け取りません。

そのタイプのコントロールだけで埋められたフォームがある場合でも、タブでフォーカスを受け取るものはありません。

Labelタブで受信をフォーカスするにはどうすればよいですか?

4

2 に答える 2

3

それを にして、 を に設定し、を に設定し、に設定TextBoxするだけの方が簡単かもしれません。これにより、ラベルの外観が得られますが、フォーカスのためにタブで移動することができます。BorderStyleNoneBackColorControlReadOnlyTrue

更新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);
   }
}
于 2013-08-01T15:19:59.523 に答える