【问题标题】:Adding items to a combobox in DataGridView将项目添加到 DataGridView 中的组合框
【发布时间】:2011-03-15 11:40:14
【问题描述】:

我在 winforms 应用程序中有一个 DataGridView。 除了来自 db 表的 4 列之外,我还需要在 datagridview [可能正在使用 DataGridViewComboColumn?] 中显示一个具有组合框的附加列。 2.然后我想为每一行的每个组合框添加不同的项目集。

我该怎么做?

谢谢。

【问题讨论】:

    标签: winforms datagridview


    【解决方案1】:

    您可以尝试通过网格的DataBindingComplete添加它们

    这几行的内容

    void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
    {
        foreach (DataGridViewRow row in dataGridView1.Rows)
        {
           if (row.Cells[0] is DataGridViewComboBoxCell && row.Index == 1)
              (row.Cells[0] as DataGridViewComboBoxCell).Items.Add("A");
           else
              (row.Cells[0] as DataGridViewComboBoxCell).Items.Add("B");
        }
    }
    

    希望这会有所帮助 编辑

    (row.Cells[0] as DataGridViewComboBoxCell).Value = (row.Cells[0] as DataGridViewComboBoxCell).Items[0];
    

    当该单元格被选中时,第一个值将显示为选中

    【讨论】:

    • 非常感谢。这行得通。你能告诉我如何在每个单元格的下拉列表中显示第一个项目吗?
    【解决方案2】:

    我在 VB.NET 中寻找答案,但在这里找到了 C# 答案。

    在 VB 中你可以这样做:

    Private Sub DataGridView1_DataBindingComplete(sender As Object, e As DataGridViewBindingCompleteEventArgs) Handles DataGridView1.DataBindingComplete
    
        For Each row As DataGridViewRow in DataGridView1.Rows
            If TypeOf row.Cells(0) Is DataGridViewComboBoxCell AndAlso row.Index = 1 Then
                TryCast(row.Cells(0), DataGridViewComboBoxCell).Items.Add("A")
            Else
                TryCast(row.Cells(0), DataGridViewComboBoxCell).Items.Add("B")
            End If
        Next
    
    End Sub
    

    编辑:

    TryCast(row.Cells(0), DataGridViewComboBoxCell).Value = TryCast(row.Cells(0), DataGridViewComboBoxCell).Items(0)
    

    【讨论】:

      猜你喜欢
      • 2017-11-01
      • 1970-01-01
      • 2017-05-27
      • 1970-01-01
      • 1970-01-01
      • 2014-09-11
      • 1970-01-01
      相关资源
      最近更新 更多