タイトル | : DataGridViewのComboboxでドロップリストを使用したい |
記事No | : 10858 |
投稿日 | : 2012/06/27(Wed) 15:09 |
投稿者 | : Jinky |
はじめまして、よろしくお願いします。
DataGridViewのComboboxでドロップリストを使用したいので いろいろなサイトを見てソースを組んだのですがうまくいきません。 どなたかご教授をお願いします。
<作業の流れ> フォームを開いた時に、DataGridViewを表示 1列目に「Combobox」、2列目に「Checkbox」、3列目に「Textbox」を 設定してデータベースのデータを表示したい。
<開発環境> VB2008 WinXP(32bit pro)
<現在の実行結果> DataGridViewに設定した項目は表示しますが、「Combobox」の ドロップリストが表示しません。 「▼」ボタンは表示します。 エラーは表示しません。
<ソース> フォームロード時のモジュール −−−−−−−−−−−−−−−−−−−−−−−−−−− Private Sub Frm_MemCrt_Load(ByVal sender As Object, ByVal e As System.EventArgs)_ Handles Me.Load
Dim dt0 As New DataTable Dim dt1 As New DataTable Dim Col_cmb1 As New DataGridViewComboBoxColumn() Dim Col_chk1 As DataGridViewCheckBoxColumn = New DataGridViewCheckBoxColumn() Dim Col_txt1 As DataGridViewColumn = New DataGridViewTextBoxColumn()
With Frm_M(フォームの名前) With .DG_RecMain(DataGridViewのオブジェクト名)
'DataGridViewに表示するデータ dt0.Columns.Add("列名1", GetType(Integer)) dt0.Columns.Add("列名2", GetType(Boolean)) dt0.Columns.Add("列名3", GetType(String)) dt0.Rows.Add(0, True, "あいうえお") dt0.Rows.Add(1, False, "かきくけこ") dt0.Rows.Add(2, True, "さしすせそ")
'項目1のコンボボックス列用データー dt1.Columns.Add("ID", GetType(Integer)) dt1.Columns.Add("名称", GetType(String)) dt1.Rows.Add(0, "A") dt1.Rows.Add(1, "B") dt1.Rows.Add(2, "C")
'DataGridViewに手動で列作成 '列の自動的作成無効 .AutoGenerateColumns = False .DataSource = dt0
'列名1列作成(コンボボックス列) Col_cmb1.DataSource = dt1 Col_cmb1.DisplayMember = "名称" Col_cmb1.ValueMember = "ID" Col_cmb1.DataPropertyName = "列名1" Col_cmb1.Name = "列名1" .Columns.Add(Col_cmb1)
'列名2列作成(チェックボックス列) Col_chk1.DataPropertyName = "列名2" Col_chk1.Name = "列名2" .Columns.Add(Col_chk1)
'列名3列作成(テキストボックス列) Col_txt1.DataPropertyName = "列名3" Col_txt1.Name = "列名3" .Columns.Add(Col_txt1) End With End With End Sub −−−−−−−−−−−−−−−−−−−−−−−−−−−
「DG_RecMain」の「CellEnter」モジュール −−−−−−−−−−−−−−−−−−−−−−−−−−− Private Sub DG_RecMain_CellEnter(ByVal sender As Object,_ ByVal e As Stem.Windows.Forms.DataGridViewCellEventArgs) _ Handles DG_RecMain.CellEnter
Dim dgv As DataGridView = CType(sender, DataGridView)
If dgv.Columns(e.ColumnIndex).CellType.Name = "列名1" _ AndAlso TypeOf dgv.Columns(e.ColumnIndex) Is DataGridViewComboBoxColumn Then
SendKeys.Send("{F4}") End If End Sub −−−−−−−−−−−−−−−−−−−−−−−−−−−
よろしくお願いします。
|