- ベストアンサー
Datagridviewのコンボボックスの扱い
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
こんな感じで。 Private Sub DataGridView1_CellValueChanged(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellValueChanged If e.ColumnIndex = 0 AndAlso e.RowIndex >= 0 Then Dim combo1 = DataGridView1.CurrentRow.Cells(0) Dim combo2 = DataGridView1.CurrentRow.Cells(1) Select Case combo1.Value Case "果物" combo2.Value = "みかん・りんご・…" Case "野菜" combo2.Value = "大根・たまねぎ・…" End Select End If End Sub
その他の回答 (1)
- NoMusicNoLife49
- ベストアンサー率63% (14/22)
こんにちは。 以下の方法で要件を満たせます。 Public Class Form1 'メンバ変数宣言 Private ReadOnly 種類() As String = {"果物", "野菜"} Private ReadOnly 果物() As String = {"みかん", "りんご"} Private ReadOnly 野菜() As String = {"大根", "たまねぎ"} '初期化処理 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'グリッド列にコンボボックス表示項目設定 Me.col種類.DataSource = 種類 End Sub 'コンボボックスの選択確定処理 Private Sub DataGridView1_CurrentCellDirtyStateChanged(ByVal sender As Object, ByVal e As EventArgs) Handles DataGridView1.CurrentCellDirtyStateChanged DataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit) End Sub 'コンボボックスの選択検知処理 Private Sub DataGridView1_CellValueChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellValueChanged '変数宣言 Dim DGVCmbCell As DataGridViewComboBoxCell If DataGridView1.CurrentCell IsNot Nothing AndAlso DataGridView1.Columns(DataGridView1.CurrentCell.ColumnIndex).HeaderText = "種類" Then 'セル初期化 DGVCmbCell = New DataGridViewComboBoxCell If DataGridView1.CurrentCell.Value = "果物" Then DGVCmbCell.DataSource = 果物 Else DGVCmbCell.DataSource = 野菜 End If DataGridView1.Rows(DataGridView1.CurrentCell.RowIndex).Cells("物品") = DGVCmbCell End If End Sub End Class
お礼
返事が遅くなってすいません。 うまく動作しました。 いろいろな方法があるんですね、独学ですがこれからも精進したいと思います。
お礼
返事が遅くなってすいません。 うまく動作しました。