从DataGridViewComboBoxColumn c#中同时选择值和文本

本文关键字:选择 文本 DataGridViewComboBoxColumn | 更新日期: 2023-09-27 18:19:34

假设我有一个datagridview,datagridview有一个DataGridViewComboBoxColumn。我已经用国家名称和代码填充了datagridview组合框列。

所以现在我想当我在for循环中读取datagridview单元格值时,我想得到DataGridViewComboBoxColumn所选的值和文本。我无法获取该值,但无法从for循环中的DataGridViewComboBoxColumn中获取显示文本。

如果可能的话,plzz帮我写一些小代码。

private void button1_Click(object sender, EventArgs e)
    {
        for (int i = 0; i <= dgList.Rows.Count - 1; i++)
        {
            DataGridViewComboBoxCell cell = dgList.Rows[i].Cells[0] as DataGridViewComboBoxCell;
            int index = cell == null || cell.Value == null ? -1 : cell.Items.IndexOf(cell.Value);
            string strVal = cell.Value.ToString();
        }
    }

感谢

从DataGridViewComboBoxColumn c#中同时选择值和文本

您可以尝试访问像FormattedValueValue这样的值吗?这应该会给您两个值。

我曾尝试使用Dictionary<string,string>作为DataSource,并且使用上面的属性,我能够获得这两个值。

试试这个:

for (int i = 0; i <= dgList.Rows.Count - 1; i++)
        { 
       string strval=((ComboBox)(dgList.Rows[i].cells[0].FindControl("ComboBox1"))).SelectedValue;
        }

是否可以将值强制转换为期望的类型?

试试这个:

dgList["columnName",RowIndex].Value

例如

转换.toInt32(dgList["columnName",RowIndex].Value)