C# 让datagridview的DataGridviewComboBoxColumn即可以下拉,还可以输入内容


让datagridview的DataGridviewComboBoxColumn即可以下拉,还可以输入内容

这个需求是有必要的。

勇哥参考了一些网上的资料,证明winform还是可以实现此功能的。

虽然操作上有点不太方便,比如输入内容后回车不能结束编辑,需要点内外的单元格结束编辑。

但是好歹是实现的要求,而且不用重写一些方法。


效果如下:

image.png


演示代码:

  public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            BindComboxItems();
            this.dataGridView1.EditingControlShowing += new DataGridViewEditingControlShowingEventHandler(EnabledComboBoxWrite);
        }

        private void EnabledComboBoxWrite(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            ComboBox cb = e.Control as ComboBox;
            if (cb != null)
            {
                cb.DropDownStyle = ComboBoxStyle.DropDown;
                cb.Validating += new System.ComponentModel.CancelEventHandler(cb_Validating);
            }

        }

        void cb_Validating(object sender, System.ComponentModel.CancelEventArgs e)
        {
            DataGridViewComboBoxEditingControl cbo = (DataGridViewComboBoxEditingControl)sender;
            if (cbo.Text.Trim() == string.Empty) return;

            DataGridView grid = cbo.EditingControlDataGridView;
            object value = cbo.Text;

            if (cbo.Items.IndexOf(value) == -1)
            {
                DataGridViewComboBoxColumn cboCol = (DataGridViewComboBoxColumn)grid.Columns[grid.CurrentCell.ColumnIndex];
                cbo.Items.Add(value);
                cboCol.Items.Add(value);
                grid.CurrentCell.Value = value;
            }
        }
        private void BindComboxItems()
        {
            DataGridViewComboBoxColumn col = (DataGridViewComboBoxColumn)dataGridView1.Columns[0];
            col.Items.Add("");
            col.Items.Add("aaa");
            col.Items.Add("bbb");
            col.Items.Add("ccc");
        }
    }



代码下载:

---------------------

支付5元或购买VIP会员后,才能查看本内容!立即支付升级会员查询订单


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:
本帖最后由 勇哥,很想停止 于 2023-03-31 14:43:23 编辑

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年5月    »
12345
6789101112
13141516171819
20212223242526
2728293031
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864