DOBON.NET DOBON.NETプログラミング掲示板過去ログ

コンボボックスのフォーカス移動

環境/言語:[VB.NET]
分類:[.NET]

こんにちは。

フォーム上に配置されたコントロールのフォーカスをTabキーによって移動する、
という操作は、環境によって動作の仕方が変わることがあるのでしょうか?

いま、コンボボックスが反転状態だと、Tabキーを押しても次のコントロールにフォーカスが移動しないという現象が起きています。(入力カーソルが表示されている場合はフォーカスが移動します。)

あるPCでは、上の↑ような現象は起きず、別のPCだと現象が起きる・・・というような状況なので、環境の違いが影響しているのかと思うのですが、原因の心当たりがある方、もしくは、環境に左右されない対処法をご存知の方がいらっしゃったら、ぜひアドバイスをよろしくお願いします。

ちなみに、上記の現象が起きない私のPCの環境は・・・
.NET Framework 1.1
Windows XP
です。

確認されている限りでの、現象が起きるPCの環境は・・・
.NET Framework 1.1
Windows 2000
です。

■No12191に返信(しょこらさんの記事)
> フォーム上に配置されたコントロールのフォーカスをTabキーによって移動する、
> という操作は、環境によって動作の仕方が変わることがあるのでしょうか?
ないです。

> いま、コンボボックスが反転状態だと、Tabキーを押しても次のコントロールにフォーカスが移動しないという現象が起きています。(入力カーソルが表示されている場合はフォーカスが移動します。)
もしかしたら、Tabキーがどっかで破棄されてるかもしれないですね。
ComboBoxのスタイルはDropDownListではないですよね?
DropDownListにしてみるとどうですか?

> 環境の違いが影響しているのかと思うのですが、>
本当に同じEXEなのか、依存しているDLLのバージョンも一致しているか確かめてみてください。
もっと確認すべき点やデバッグする点はたくさんあると思うんです。
■No12192に返信(はいこーんさんの記事)
> もしかしたら、Tabキーがどっかで破棄されてるかもしれないですね。
「破棄」というと、押されたキーが無効化されている・・・ということでしょうか?

> ComboBoxのスタイルはDropDownListではないですよね?
> DropDownListにしてみるとどうですか?

DropDownListだと、たしかにフォーカス移動は正常にできました。
ただ、入力も可能にしたいので、変えられません・・・。

> 本当に同じEXEなのか、依存しているDLLのバージョンも一致しているか確かめてみてください。
> もっと確認すべき点やデバッグする点はたくさんあると思うんです。

違いをもう一度、よく確認してみますね。
環境の違いで動作が変わることはないということなので、他の原因を探してみます。
こんにちは、じゃんぬ です。

■No12196に返信(しょこらさんの記事)
> DropDownListだと、たしかにフォーカス移動は正常にできました。
> ただ、入力も可能にしたいので、変えられません・・・。

DropDownList 以外のスタイルですと、キーの受け付けが特殊だった記憶があります。
KeyEvent 周り (ProcessCmdKey, ProcessDialogKey, KeyDown, KeyPress) 何かで、
Tab を補足して何かやっていないか確認してみてください。
■No12199に返信(じゃんぬねっとさんの記事)
> KeyEvent 周り (ProcessCmdKey, ProcessDialogKey, KeyDown, KeyPress) 何かで、
> Tab を補足して何かやっていないか確認してみてください。

KeyPressイベントは使用していますが、ShiftキーとF1〜F10までのファンクションキーを押したときの動作を指定していて、Tabキーに関するものはありませんでした・・・。

もしかして、これらのキーとTabキーは関係があるのでしょうか??
あれから、いろいろ調べてみましたが、やはりまったく同じ内容のEXEでも動かすPC(OS?)が違うと違う動きをしてしまうようです。
WindowsXpと2000では、大丈夫なのですが・・・。
未解決ですが、操作上大きな問題ではないので、現状のままにすることにしました。

一緒に考えてくれたみなさんありがとうございます。
今後も、原因を追究するつもりなので、もしわかったときには報告に来ます。

DOBON.NET | プログラミング道 | プログラミング掲示板