- ベストアンサー
DataGridViewのコンボボックスの初期値について
- VB2005でDataGridViewでコンボボックスを作成しています。コンボボックスのDataSourceを指定した場合、初期値が表示されてしまいますが、再度選択しなおさないと有効になりません。
- 一方、DataSourceを指定しないでItemsに値を設定した場合、初期値が表示されずに空白のままになります。
- DataSourceを指定して初期値を表示させずに空白のままにする方法はあるのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
お世話になります。 DataGridView の EditMode を EditOnEnter にしている場合は 確かにそのような動きになりますね。 これはこういう仕様なのだと思います。 なので回避するとしたら、バインドするデータソースの先頭に空白のデータを突っ込んでおくか、 DataGridView の EditMode を EditOnEnter でないものにするか、 どちらかしか方法がないと思います。
その他の回答 (1)
- naganaga_001
- ベストアンサー率71% (172/242)
お世話になります。 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
お礼
すみません。 補足入力が出来ないので、ここに記述させていただきます。 大事なことを書き忘れていました。 DatagridViewのEditModeを変更してあります。 EditMode=EditOnEnter やはりXPでやってもカーソルが位置づいたときには データが表示されてしまいます。 EditModeがdefaultのEditOnKeystrokeOrF2の場合には 表示されませんでした。 EditMode=EditOnEnterでは無理なのでしょうか?
補足
ありがとうございます。試していただけたのですか? 私の環境はWindows2000なのですが、 右側の「V」をクリックしなくても カーソルが位置づいたときに発生してしまいます。 WindowsXPで試してみます。
お礼
回答ありがとうございます。 仕様ですか。 ではあきらめるしかないですね。