tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルコンボボックスの値変更によるイベント
記事No8854
投稿日: 2009/04/08(Wed) 19:00
投稿者タロ
いつもお世話になっております。
DataGridView1にコンボボックスを作成したのですが、コンボボックスの値が変更したらイベント処理を行うにはどうすれば宜しいでしょうか。
以下のようにDataGridView1にデータを表示させています。

Dim sqlSelect As New SqlClient.SqlCommand(sSQL, sqlConn)
Dim Adapter As New SqlClient.SqlDataAdapter(sqlSelect)

Dim Table As New DataTable()
Adapter.Fill(Table)

sqlConn.Close()
sqlConn = Nothing

'データソースを設定してDataGridViewにデータを表示
Dim BindingSource1 As New BindingSource
BindingSource1.DataSource = Table
DataGridView1.DataSource = BindingSource1

Dim column1 As New DataGridViewComboBoxColumn()
'ComboBoxのリストに表示する項目
column1.Items.Add("不要")
column1.Items.Add("必要")
column1.DataPropertyName = "要・不要"

DataGridView1.Columns.Insert(DataGridView1.Columns("要・不要").Index, column1)
DataGridView1.Columns.Remove("要・不要")
column1.Name = "要・不要"

『要・不要』のコンボボックスの値が変わったらイベント処理を行いたいです。

環境:VB2005

[ツリー表示へ]
タイトルRe: コンボボックスの値変更によるイベント
記事No8860
投稿日: 2009/04/10(Fri) 08:08
投稿者花ちゃん
> 『要・不要』のコンボボックスの値が変わったらイベント処理を行いたいです。

何方からも回答が無いのと、意図する事が今一よく解らないのですが下記ではだめですか。
ようは、選択が変更された事が取得できれば良いのですよね。
(下記コードを追加して見て下さい)

Private Sub DataGridView1_CellValueChanged(ByVal sender As Object, _
            ByVal e As System.Windows.Forms.DataGridViewCellEventArgs _
                    ) Handles DataGridView1.CellValueChanged
   Dim dgv As DataGridView = CType(sender, DataGridView)
   If dgv.Columns(e.ColumnIndex).Name = "要・不要" AndAlso _
            TypeOf dgv.Columns(e.ColumnIndex) Is DataGridViewComboBoxColumn Then
      Debug.Print(dgv(e.ColumnIndex, e.RowIndex).Value.ToString)
   End If
End Sub

Private Sub DataGridView1_CurrentCellDirtyStateChanged( _
              ByVal sender As Object, ByVal e As System.EventArgs) _
              Handles DataGridView1.CurrentCellDirtyStateChanged
   If DataGridView1.IsCurrentCellDirty Then
      DataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit)
   End If
End Sub

>環境:VB2005
因みに、OS は何をお使いですか? 
XP と Vista では、ComboBox の表示スタイルが違うかも。

[ツリー表示へ]