【问题标题】:How to get selected value of datagridview combobox column?如何获取datagridview组合框列的选定值?
【发布时间】:2018-08-18 12:19:51
【问题描述】:

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

enter image description here

这就是我在 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);

我得到空值。

enter image description here

【问题讨论】:

  • 表示您的 datagridview 列是组合框类型,您希望该组合框选择的值正确吗?
  • 你用哪个事件来获取DataGridViewComboBoxColumn中的值?
  • 是的 datagridview 列是组合框类型,我想要组合框选择值。
  • 在 form_load 事件中我正在填充组合框值
  • 您是否使用任何事件来获取您在第二张图片中显示的代码组合框中的值

标签: c# datagridview


【解决方案1】:

为您的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:在您从DataGridViewComboBoxColumn 中选择值后,此事件将立即触发您的dataGridView1_CellValueChanged

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);
}

输出:

【讨论】:

  • @lightcoder,查看答案可能对您有帮助:) 从您的datagridviewProperty Window 添加事件或手动添加Form1_Load
猜你喜欢
  • 2012-01-10
  • 1970-01-01
  • 2011-08-28
  • 2017-04-28
  • 2013-08-15
  • 2011-10-17
  • 2013-12-08
相关资源
最近更新 更多