コンボボックスのフォーカスをわかりやすくするには?

解決


唯香  2008-08-23 00:29:08  No: 140264

いつも参考にさせていただいています。

コンボボックスにフォーカスがあるのに
フォーカスがあたっているように見えず
どこにフォーカスがあるかわからないときがあります。
この現象はコンボボックスが以下の設定の時です。

・TabIndexがゼロ(Zオーダー最前面)
・ドロップダウンリスト

普通(?)はコンボボックスにフォーカスがあると
コンボロールの内側に点線が入るのでわかるのですが
フォームを開いたときに最初にコンボボックスに
フォーカスがあたる設定の場合は
何の変化もなく戸惑ってしまいます。

XP Visual スタイルのチェックを外すとか
1番目にフォーカスがあたらないようにする以外に
方法はないのでしょうか?

Visita/VB2008(sp1)


  2008-08-26 00:23:44  No: 140265

例えば
・Form.ShownイベントでComboBoxにフォーカスし直す
  (単純にFocusでうまくいかなければ、一度他のコントロールに
    移動してからComboBoxに戻る)
・GotFocusイベントで目立たせる(LostFocusで元に戻す)
とか…
GotFocusで何かやるなら、例えばComboBoxより少し大きいLabelを
BackColorを替えて準備しておいて、その上(前面)にComboBoxを載せて
GotFocusでLabelを見せ、LostFocusで隠す、とか

「要は目立たせればいい」のであれば、やりようは色々あると思う


  2008-08-26 00:52:31  No: 140266

あ、ちなみに
VS2005(VB)で ちとやってみた(ComboBox(DropDownList)と
TextBoxをForm1に貼った)ら、何もしなくても
ComboBoxが反転表示されたので…2008だと何か違うのかも
もしうまくいかなかった場合、ご勘弁を


唯香  2008-08-26 04:11:15  No: 140267

あ さんお返事ありがとうございます。

あ さんの検証通り(ComboBoxとTextBox)
再度テストしてみたところうまくいきました。

そこでもっと詳しく調べてみたところ
Buttonコントロールがあるとダメだとわかりました。

私も投稿前にGotFocusとLostFocusでなんとかなるかと
ForeColorやBackColorを変えてみましたが
DropDownListだと何の変化もありませんでした。
色以外の変更だと自分にはセンスがないので
なんとかVB側でWindows本来の動きができないかと
投稿させていただいたのです。

Shownイベントはこんなことができるのかととても勉強になりました。
(前にEnabledとActivateイベントを駆使した覚えがあるので♪)
でもEnabledやらFocusやらTabIndex変えてみましたが結局だめでした。

仕方がないのでXP Visual スタイルのチェックを外すことにします。
あ さんお返事いただけて本当にうれしかったです。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加