tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル DataGridViewのComboboxでドロップリストを使用したい
投稿日: 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
−−−−−−−−−−−−−−−−−−−−−−−−−−−

よろしくお願いします。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。