気になった事を自由に書いてます。
  
      
更新:2011/06/18
Tab移動するとフォーカスがなくなる(ユーザコントロールのフォーカス)
フォーム上でTabキーを押すと入力系のコントロールにフォーカスが移動します。
コントロールによって表示方法は違いますが、例えばボタンにフォーカスがあたると
破線が付いた状態で表示されます。


主な入力系のコントロールは「Button」「TextBox」「CheckBox」「DataGridView」などです。
フォーカスがあたると目立つようになるので、どのコントロールにフォーカスが当たっているか
わかるのですが、ユーザコントロールは別です。


ユーザコントロールは見た目が「Panel」に似ているので、
入力系のコントロールではないと思い込んでいたのですが、実はそうではなく
Tabやクリックでフォーカスが移動します。

そのときデフォルトで破線や青枠がつくなどの処理がないため
見た目はフォーカスが当たってないように見えます。
そのため、急にフォーカスがなくなったように見えてしまいどこに消えたのか
わからない状態となります。

テキストボックスにフォーカスをおき、Tabキーを押すとユーザコントロールにフォーカスが移ります。


ユーザコントロールにTab移動したくない場合は、Enabledプロパティを false にします。
ユーザコントロール上に有効な入力系のコントロール(Enabledプロパティtrue)を配置
している場合は、特に何もしなくていいです。
Tab移動するとユーザコントロールに配置している入力系のコントロールへフォーカスが移動します。

関連事項
      



Effective C# 4.0
ビル・ワグナー
¥ 3,780



Copyright (C) 2011 - 2015 猫の気ままなC#日記