データグリッドのデータソースをデータセットとした上でフィールドにコンボボックスを表示させるには?

解決


51  2009-10-20 07:58:03  No: 142679

以前にも質問させていただいたものです。その節はありがとうございました。また、質問させていただきます。データセットをデータソースとしてデータグリッドに表示しています。
dt = DS.Tables(TableName)   ' DS,dtはデータセット,データテーブル
dv = New DataView(dt, "ID='1'", "", DataViewRowState.CurrentRows)
DataGridView1.DataSource = dv
このときに特定のフィールドにコンボボックスを表示したいのですが、どのようにすればよいか分かりません。ちなみに、データセットはFillコマンドを用いて、
dAdp.Fill(DS, TableName)
にて取得し、その後プログラムで編集したものです。
なお、VB2005を使用しています。
素人なので質問自体奇妙かもしれませんが、よろしくお願いいたします。


51  2009-10-20 20:18:47  No: 142680

すみません。以下のようにすることで目的を達成することができました。
DataGridView1.Columns.Add("ID", "ID")
'---add a combobox column---
Dim comboBoxCol As New DataGridViewComboBoxColumn
'---set the header text---
comboBoxCol.HeaderText = "Types"
'---add items to it---
comboBoxCol.Items.Add("A")
comboBoxCol.Items.Add("B")
comboBoxCol.Items.Add("C")
DataGridView1.Columns.Add(comboBoxCol)
Dim dt As DataTable
dt = DS.Tables(TableName)
dv = New DataView(dt, "ID='1'", "", DataViewRowState,CurrentRows)
DataGridView1.Columns(0).DataPropertyName = "ID"
DataGridView1.Columns(1).DataPropertyName = "Types"
DataGridView1.DataSource = dv
ここに、コンボボックスをデータグリッドに埋め込む(?)ところは、
http://japan.internet.com/developer/20070522/26.html
を参考にさせていただきました。そのままで最終行を実行すると、同じフィールド名ができてしまったのですが、.DataPropertyNameをデータセットのフィールド名とすることで目的は達成できました。
お騒がせしまして、申し訳ありませんでした。深謝いたします。


51  2009-10-20 20:20:15  No: 142681

すみません。解決にチェックするのをわすれてました。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加