- PR -

VistaでComboBoxにフォーカスを移すためにSetFocusするとコンボの見た目が変わらない。

1
投稿者投稿内容
longhorn7
会議室デビュー日: 2008/03/09
投稿数: 13
投稿日時: 2008-03-09 11:25
こんにちは。アべです。

Windows XPとVistaで動作する.NET2.0のWindowsフォームアプリケーションを作成しております。
コントロールの見た目の違いはお客様にご了解を頂いたのですが、1点だけ問題があり、解決できずに困っています。

それは、Vistaの場合のみComboBoxにフォーカスを移してもフォーカスがそこに移動したという風な絵にならない問題が出ており、指摘されています。

どうも一度でもComboBoxにフォーカスを移すと問題なく動作(フォーカス取得時に破線が表示される。)するようですが、初回だけはどうしても正しく動かないようです。

大変困っており、対処療法を試みたのですが、現象は一向に改善されず、投稿させていただきました。

何かご存知の方アドバイスをお願いいたします。

現象の発生するソースの作成方法

1)ボタンとコンボボックスを配置し、コンボボックスをドロップダウンリストにする。

2)ボタンのクリックイベントに

comboBox1.Focus();

と記述する。(C#時)

3)作成したExeをVista上で動作させる。

4)ボタンをクリックするとフォーカスが消えたように見えます。

開発機 Windows XP Pro SP2
VS2005上の.NET2.0
実行機 Windows Vista Ultimate (NON SP)

Blue
大ベテラン
会議室デビュー日: 2005/09/12
投稿数: 230
お住まい・勤務地: 知っている人は知っている
投稿日時: 2008-03-09 11:56
C++ MFCで同じような質問がありました。
http://forums.microsoft.com/msdn-ja/ShowPost.aspx?PostID=1342745&SiteID=7

chack - Akira Inoue さんの記述(ただ、以降の記述)にあるように
最初はフォーカス線が表示されないだけの仕様なのかも。
longhorn7
会議室デビュー日: 2008/03/09
投稿数: 13
投稿日時: 2008-03-09 21:36
アドバイスありがとうございます。

確かにフォーカスはコンボボックスに移っており、破線表示されない
Vista固有の問題かもしれません。(バグに近い仕様か、バグだと思っています。)

問題が解決しなので、引き続き対処療法や原因の情報などを求めます。
宜しくお願い致します。

うっ、うっ、Vistaにたくさん苛められています。泣;


[ メッセージ編集済み 編集者: longhorn7 編集日時 2008-03-09 21:38 ]
longhorn7
会議室デビュー日: 2008/03/09
投稿数: 13
投稿日時: 2008-05-22 10:08
自己、解決しました。

PG対応:API SystemParametersInfoでSPIF_UPDATEINIFILE | SPIF_SENDWININICHANGEを変更
手動対応:「ショートカットキーとアクセスキーに下線を表示します 」を変更

仕様でしたガイド キーボード ナビゲーションの通りですね。
1

スキルアップ/キャリアアップ(JOB@IT)