首页 > 解决方案 > 如何获取datagridview组合框列的选定值?

问题描述

我有一个带有图像标签列表和保存按钮的组合框。在保存按钮上,我需要在保存按钮上获取组合框选择的值,如果它为空,然后验证。我怎么能做到这一点?

在此处输入图像描述

这就是我在 datagridview 中添加组合框的方式:

string[] ImageLabels = {Photograph, PassportPage1, PassportPage2, 
PassportPage3, PassportPage4};
var list=new ArrayList();
var combo = new DataGridViewComboBoxColumn();
combo.HeaderText = "Image Labels";
combo.Name = "combo";
list = new ArrayList();
list.AddRange(ImageLabels);
combo.Items.AddRange(list.ToArray());
dgvFiles.Columns.Add(combo);

我得到空值。

在此处输入图像描述

标签: c#datagridview

解决方案


为您添加以下事件datagridview

这里我的datagridview名称是dataGridView1

private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
    dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
}

private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
    string comboboxSelectedValue = string.Empty;

    if (dataGridView1.Columns[e.ColumnIndex].GetType() == typeof(DataGridViewComboBoxColumn))
        comboboxSelectedValue = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
}

1) dataGridView1_CurrentCellDirtyStateChanged:在您dataGridView1_CellValueChangedDataGridViewComboBoxColumn.

2)dataGridView1_CellValueChanged:此事件将为您提供您在combobx中选择的选项的值,我们还检查了这些值是否来自DataGridViewComboBoxColumn

Form1_Load您可以在喜欢的地方添加上述事件

private void Form1_Load(object sender, EventArgs e)
{
    dataGridView1.CellValueChanged +=
             new DataGridViewCellEventHandler(dataGridView1_CellValueChanged);
    dataGridView1.CurrentCellDirtyStateChanged +=
                 new EventHandler(dataGridView1_CurrentCellDirtyStateChanged);
}

输出:

在此处输入图像描述


推荐阅读