如何在数据网格视图组合框列单元格中选择值

本文关键字:单元格 选择 组合 视图 数据 数据网 网格 | 更新日期: 2023-09-27 18:34:33

我有一个数据网格视图,其中包含一个组合框列,当我从组合框中选择一个添加值时,它会显示一个新表单。 我尝试了这段代码,但它不起作用:

private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            switch (dataGridView2.Columns[e.ColumnIndex].Name)
            {
                case "CategorieDataGridViewTextBoxColumn":
                    if (dataGridView2.Rows[e.RowIndex].Cells["CategorieDataGridViewTextBoxColumn"].Value.ToString() == "Add")
                    {
                        Categorie cat = new Categorie();
                        cat.Show();
                    }
                    break;
            }
        }

那我该怎么做呢?

如何在数据网格视图组合框列单元格中选择值

当 DataGridView 单元格的组合框中的值发生更改时,应处理该事件。 尝试以下代码,它将在 dataGridView 的组合框中触发所选内容的事件:

public Form1()
    {
        InitializeComponent();
        DataGridViewComboBoxColumn cmbcolumn = new DataGridViewComboBoxColumn();
        dataGridView2.EditingControlShowing += new DataGridViewEditingControlShowingEventHandler(dataGridView2_EditingControlShowing);

    }
    private void dataGridView2_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    {
        ComboBox combo = e.Control as ComboBox;
        if (combo != null)
        {
            combo.SelectedIndexChanged -= new EventHandler(ComboBox_SelectedIndexChanged);
            combo.SelectedIndexChanged += new EventHandler(ComboBox_SelectedIndexChanged);
        }
    }
    private void ComboBox_SelectedIndexChanged(object sender, EventArgs e)
    {
        ComboBox cb = (ComboBox)sender;
        string item = cb.Text;
        if (item == "Add")
        {
            Categorie cat = new Categorie();
            cat.Show();
        }
    }