- PR -

ComboBoxの項目を変更しても、SelectionChangeCommitted イベントが発生しない

1
投稿者投稿内容
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2008-11-13 14:39
Windows アプリケーションで、画面上からコンボボックスの項目を変更しても SelectionChangeCommitted イベントが発生しない現象を見つけたので報告します。
# 最初は質問も書いていたのですが、書いている間に自己完結してしまったという…。

【確認した環境】
Windows XP Professional (SP3)
Visual Studio 2005 Professional (SP1)
使用言語:VB.NET (Windowsフォーム)

【作成手順】

  1. 新規Windowsアプリケーションを作成し、Form1 に ComboBox1 を配置する
  2. ComboBox1.DropDownStyle を DropDownList にし、項目をいくつか追加する
  3. SelectionChangeCommitted イベントのハンドラを用意して、イベントが発生したことがわかるように何か処理を書いておく


【再現手順】

  1. プログラムを実行して、コンボボックスのドロップダウンを開く。
  2. ドロップダウンから別の項目をマウスで選択し、ドロップダウンを閉じる。このとき、SelectionChangeCommitted が発生する。
  3. 再びコンボボックスのドロップダウンを開き、ドロップダウンを開いたまま、キーボードの↑↓キーで項目を移動する
  4. その状態で、ドロップダウンではない場所をクリックして、ドロップダウンを閉じる。このとき、SelectionChangeCommitted が発生しない。


【調べたこと】
同様の事象がないか探してみたところ、以下のフィードバックが見つかりました。
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=95320
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=115189

英語は苦手なりに読んでみて、再現手順が違うものの原因は同じかなと思いました。
現象は Win32 の DropDownList 自体のバグで、.NET Framework はそれをラップしているだけなので、.NET Framework ではどうしようもないよ、というふうに理解しました。
なので、もしかしたら Windows Vista では再現しないかもしれません。


[ メッセージ編集済み 編集者: rain 編集日時 2008-11-13 14:40 ]
にー
常連さん
会議室デビュー日: 2006/04/30
投稿数: 35
投稿日時: 2008-11-15 09:14
Vistaでも同現象が発生することを確認しました。
iStation
大ベテラン
会議室デビュー日: 2003/12/08
投稿数: 158
投稿日時: 2008-11-15 11:51
SelectedIndexChanged を併用しては?

iStation
IEEE CSDP 2008-2010
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2008-11-17 09:54
情報ありがとうございます。

引用:

iStationさんの書き込み (2008-11-15 11:51) より:
SelectedIndexChanged を併用しては?


もしプログラムを修正することになった場合は、おそらくその方法を検討することになると思います。フィードバックに対する回答で DropDownClosed イベントを使うという方法が挙げられていたので、それも併せて検討しようかと思います。
ただ、当面はプログラム修正の必要はなしと判断しましたので、修正するとしても当分先の話になると思います。


引用:

にーさんの書き込み (2008-11-15 09:14) より:
Vistaでも同現象が発生することを確認しました。


うーん、Vista でもだめでしたか。

将来バグの修正が行われる見込みがわからないので、OS Team までフィードバックがあがっているか確認しようと思ったのですが、見つけられませんでした。
TechNet フォーラムは探してみたのですが、それ以外だとどこがあるでしょうか?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2008-11-18 22:55
引用:

rainさんの書き込み (2008-11-17 09:54) より:

将来バグの修正が行われる見込みがわからないので、OS Team までフィードバックがあがっているか確認しようと思ったのですが、見つけられませんでした。
TechNet フォーラムは探してみたのですが、それ以外だとどこがあるでしょうか?



とりあえず、Connect サイトの Visual Studio 日本語へ投げて、「原因と回避策はわかったのだが、根本的解決が行われるのかどうかが知りたい」と書き添えてみるのはどうでしょう?


追記:
vote しようぜ

[ メッセージ編集済み 編集者: Jitta 編集日時 2008-11-18 22:56 ]
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2008-11-19 00:52
背中を押されたのでフィードバックを投げてみました。
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=382624

よかったら vote お願いします。
1

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