C# 如何在DataGridView中插入DataGridViewComboxCell?

C# 如何在DataGridView中插入DataGridViewComboxCell?,c#,windows,winforms,C#,Windows,Winforms,我想为datagrid中的每一行插入一个组合框,但当我尝试为特定单元格发送组合框时,它不起作用 for (int i = 0; i < dtRecord.Rows.Count; i++) { int idRecord = Convert.ToInt32(dtRecord.Rows[i]["idRecord"].ToString()); DataTable dtDetalleRecordPorId = new DataTable();

我想为datagrid中的每一行插入一个组合框,但当我尝试为特定单元格发送组合框时,它不起作用

    for (int i = 0; i < dtRecord.Rows.Count; i++)
    {
        int idRecord = Convert.ToInt32(dtRecord.Rows[i]["idRecord"].ToString());

        DataTable dtDetalleRecordPorId = new DataTable();
        dtDetalleRecordPorId = cnEvalua.CNListaDetalleRecord(idRecord);

        DataGridViewComboBoxCell cmb = new DataGridViewComboBoxCell
        {
            DataSource = dtDetalleRecordPorId,
            ValueMember = dtDetalleRecordPorId.Columns["idDetalleRecord"].ToString(),
            DisplayMember = dtDetalleRecordPorId.Columns["cValor"].ToString(),
            ReadOnly = false
        };

        dtgRecord.Rows[i].Cells["cValor"] = cmb;
    }
当我检查gridview的datasource时,
cValor
列为空,但其他列有数据。

您可以试试这个

DataGridViewComboBoxColumn cmb = new DataGridViewComboBoxColumn();
cmb.DataSource = dtDetalleRecordPorId;            
cmb.ValueMember = dtDetalleRecordPorId.Columns["idDetalleRecord"].ToString();
cmb.DisplayMember = dtDetalleRecordPorId.Columns["cValor"].ToString();
cmb.ReadOnly = false;
dtgRecord.Columns.Add(cmb);

您应该将
DataGridViewComboBoxColumn
添加到网格中。但是我想在
cValor
列中显示combobox。好的,您必须使用
DataGridViewComboxColumn
DataGridViewComboBoxColumn cmb = new DataGridViewComboBoxColumn();
cmb.DataSource = dtDetalleRecordPorId;            
cmb.ValueMember = dtDetalleRecordPorId.Columns["idDetalleRecord"].ToString();
cmb.DisplayMember = dtDetalleRecordPorId.Columns["cValor"].ToString();
cmb.ReadOnly = false;
dtgRecord.Columns.Add(cmb);