いつも参考にさせていただいています。
コンボボックスにフォーカスがあるのに
フォーカスがあたっているように見えず
どこにフォーカスがあるかわからないときがあります。
この現象はコンボボックスが以下の設定の時です。
・TabIndexがゼロ(Zオーダー最前面)
・ドロップダウンリスト
普通(?)はコンボボックスにフォーカスがあると
コンボロールの内側に点線が入るのでわかるのですが
フォームを開いたときに最初にコンボボックスに
フォーカスがあたる設定の場合は
何の変化もなく戸惑ってしまいます。
XP Visual スタイルのチェックを外すとか
1番目にフォーカスがあたらないようにする以外に
方法はないのでしょうか?
Visita/VB2008(sp1)
例えば
・Form.ShownイベントでComboBoxにフォーカスし直す
(単純にFocusでうまくいかなければ、一度他のコントロールに
移動してからComboBoxに戻る)
・GotFocusイベントで目立たせる(LostFocusで元に戻す)
とか…
GotFocusで何かやるなら、例えばComboBoxより少し大きいLabelを
BackColorを替えて準備しておいて、その上(前面)にComboBoxを載せて
GotFocusでLabelを見せ、LostFocusで隠す、とか
「要は目立たせればいい」のであれば、やりようは色々あると思う
あ、ちなみに
VS2005(VB)で ちとやってみた(ComboBox(DropDownList)と
TextBoxをForm1に貼った)ら、何もしなくても
ComboBoxが反転表示されたので…2008だと何か違うのかも
もしうまくいかなかった場合、ご勘弁を
あ さんお返事ありがとうございます。
あ さんの検証通り(ComboBoxとTextBox)
再度テストしてみたところうまくいきました。
そこでもっと詳しく調べてみたところ
Buttonコントロールがあるとダメだとわかりました。
私も投稿前にGotFocusとLostFocusでなんとかなるかと
ForeColorやBackColorを変えてみましたが
DropDownListだと何の変化もありませんでした。
色以外の変更だと自分にはセンスがないので
なんとかVB側でWindows本来の動きができないかと
投稿させていただいたのです。
Shownイベントはこんなことができるのかととても勉強になりました。
(前にEnabledとActivateイベントを駆使した覚えがあるので♪)
でもEnabledやらFocusやらTabIndex変えてみましたが結局だめでした。
仕方がないのでXP Visual スタイルのチェックを外すことにします。
あ さんお返事いただけて本当にうれしかったです。
ありがとうございました。
ツイート | ![]() |