misc.log

日常茶飯事とお仕事と

DataSource設定をnullにしたコンボボックスに白枠が残る

Visual Studio 2017 + .NET Framework 4.6.1 + C#で、コンボボックスにDataSourceを設定して数件の選択肢が表示された状態からDataSourceをnullに設定すると、ドロップダウン部分に入っていた選択肢分の空欄だけが表示されてしまうという状況が発生しました(今更な話題ですが)。

これについてはMicrosoft のDeveloperコミュニティのフォーラムでも2012年に同じ内容で質問が出ていたので、備忘録を兼ねて書いておきます。

social.msdn.microsoft.com

解決法は2つ

  • DataSource = nullのあとに、一旦Items.Addで空objectを設定後、Clearを呼ぶ。
  • DataSourceでバインドされたリストタイプの情報自体を空にする(DataSource = nullではなく)。

どうもWindows XP以前はDataSource = nullで綺麗に消えていたようなのですが、Vista以降で動きが変わったようです。新人研修で遭遇するまで気づきませんでした……。

なお、後者の対応ですが、Newしたての空のリストではダメでした。中に空のオブジェクトを1件だけ入れておくと現象が発生しませんでした。