• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:DataGridViewのコンボボックスの初期値について)

DataGridViewのコンボボックスの初期値について

このQ&Aのポイント
  • VB2005でDataGridViewでコンボボックスを作成しています。コンボボックスのDataSourceを指定した場合、初期値が表示されてしまいますが、再度選択しなおさないと有効になりません。
  • 一方、DataSourceを指定しないでItemsに値を設定した場合、初期値が表示されずに空白のままになります。
  • DataSourceを指定して初期値を表示させずに空白のままにする方法はあるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

お世話になります。 DataGridView の EditMode を EditOnEnter にしている場合は 確かにそのような動きになりますね。 これはこういう仕様なのだと思います。 なので回避するとしたら、バインドするデータソースの先頭に空白のデータを突っ込んでおくか、 DataGridView の EditMode を EditOnEnter でないものにするか、 どちらかしか方法がないと思います。

rabu_chihaha
質問者

お礼

回答ありがとうございます。 仕様ですか。 ではあきらめるしかないですね。

その他の回答 (1)

回答No.1

お世話になります。 Windows Vista および XP で動作確認したところ、 バインドしていてもカーソル移動が発生するような特に 1 行目が表示されませんでした。 右側の「V」をクリックした時の話でしょうか。 以下のようなコードでバインドした DataGridViewComboBox に 無理やり Form の Load イベントで DisplayIndex に -1 を入れてみましたが実行時に例外(System.ArgumentOutOfRangeException)が発生してしまいました。 Dim ccol As DataGridViewComboBoxColumn = DirectCast(Me.DataGridView1.Columns(0), DataGridViewComboBoxColumn) ccol.DisplayIndex = -1 MSDN をみてもそれらしいプロパティやメソッドが見つからなかったのでできないのかもしれません。 http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.datagridviewcomboboxcolumn_members(VS.80).aspx

rabu_chihaha
質問者

お礼

すみません。 補足入力が出来ないので、ここに記述させていただきます。 大事なことを書き忘れていました。 DatagridViewのEditModeを変更してあります。 EditMode=EditOnEnter やはりXPでやってもカーソルが位置づいたときには データが表示されてしまいます。 EditModeがdefaultのEditOnKeystrokeOrF2の場合には 表示されませんでした。 EditMode=EditOnEnterでは無理なのでしょうか?

rabu_chihaha
質問者

補足

ありがとうございます。試していただけたのですか? 私の環境はWindows2000なのですが、 右側の「V」をクリックしなくても カーソルが位置づいたときに発生してしまいます。 WindowsXPで試してみます。

関連するQ&A