当前位置:首页 > 软件设计 > 正文

Devexpress bandedGridView数据行添加按钮comboBox控件

Devexpress bandedGridView数据行添加按钮comboBox控件

给表格里的单元格添加下拉控件,研究了两天,终于有了结果网上也有很多教程,但都是给到了数据列,就像这种代码贴一下调用用:GetComboBox("OK"...

给表格里的单元格添加下拉控件,研究了两天,终于有了结果

网上也有很多教程,但都是给到了数据列,就像这种

1.gif

代码贴一下

调用用:GetComboBox("OK","NG");

private void GetComboBox(string str1, string str2)

        {

            DevExpress.XtraEditors.Repository.RepositoryItemComboBox combobox = new DevExpress.XtraEditors.Repository.RepositoryItemComboBox();

            combobox.Items.Add(str1);

            combobox.Items.Add(str2);

            combobox.AllowNullInput = DevExpress.Utils.DefaultBoolean.False;

            gridControl1.RepositoryItems.Add(combobox);

            this.bandedGridView1.Columns["1"].ColumnEdit = combobox;

        }

而我想要实现的是,根据最后一列的特征,比如是文字,我想在文字所在的行编程下拉,而不是列变成下拉

2.gif

看了好多的链接,快要放弃的时候有了好的消息,达到了预期的效果

贴代码:

首先,定义一个comboBox

public DevExpress.XtraEditors.Repository.RepositoryItemComboBox comboBox = new DevExpress.XtraEditors.Repository.RepositoryItemComboBox();

然后,在Load事件中加载它

comboBox.Items.AddRange(new object[] { "OK", "NG" });

gridControl2.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] {comboBox});

最后增加bandedGridView1_CustomRowCellEdit事件

private void bandedGridView1_CustomRowCellEdit(object sender, DevExpress.XtraGrid.Views.Grid.CustomRowCellEditEventArgs e)

        {

            for (int i = 0; i < bandedGridView1.RowCount; i++)

            {

                if (this.bandedGridView1.GetRowCellValue(i, "检验类型").ToString() == "文字")

                {

                    if (e.RowHandle == i)

                    {

                        e.RepositoryItem = comboBox;

                    }

                }

            }

        }

这样就实现了我的功能

最后的最后

感谢https://blog.csdn.net/bjxiejihua/article/details/108431309的帮助。

发表评论

最新文章

取消
扫码支持 支付码