如何在c#中的datagridview组合框中允许用户手动输入 [英] how to allow user manual entry in datagridview combobox in c#

查看:17
本文介绍了如何在c#中的datagridview组合框中允许用户手动输入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在 datagridview 组合框中输入值.但它不允许.怎么办?

I am trying to enter values in a datagridview Combobox. but it does not Allows. What to do?

推荐答案

private void GridStockItemEntry_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    {

        DataGridViewRow row = GridStockItemEntry.CurrentRow;
        DataGridViewCell cell = GridStockItemEntry.CurrentCell;
        if (e.Control.GetType() == typeof(DataGridViewComboBoxEditingControl))
        {

            if (cell == row.Cells["ItemName"] && Convert.ToString(row.Cells["Type"].Value) == "Raw Material")
            {
                DataGridViewComboBoxEditingControl cbo = e.Control as DataGridViewComboBoxEditingControl;

                cbo.DropDownStyle = ComboBoxStyle.DropDown;

                cbo.Validating += new CancelEventHandler(cbo_Validating);
            }
        }


    }
    void cbo_Validating(object sender, CancelEventArgs e)
    {

        DataGridViewComboBoxEditingControl cbo = sender as DataGridViewComboBoxEditingControl;

        DataGridView grid = cbo.EditingControlDataGridView;

        object value = cbo.Text;

        // Add value to list if not there

        if (cbo.Items.IndexOf(value) == -1)
        {

            DataGridViewComboBoxCell cboCol = (DataGridViewComboBoxCell)grid.CurrentCell;

            // Must add to both the current combobox as well as the template, to avoid duplicate entries...

            cbo.Items.Add(value);

            cboCol.Items.Add(value);

            grid.CurrentCell.Value = value;

        }

    }

这篇关于如何在c#中的datagridview组合框中允许用户手动输入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆