【问题标题】:Devexpress - How do I change the button Inside DataGridView automatically [duplicate]Devexpress - 如何自动更改 DataGridView 内的按钮 [重复]
【发布时间】:2021-07-26 01:44:32
【问题描述】:

我需要修改datagridview中按钮名称的描述

我正在使用 DevExpress - WindowsForm - C#

如何根据单元格“TYPE”的值自动逐行更改按钮?

例如:在“类型”列中,当单元格值为“服务”时,按钮显示说明“接收”,当单元格值为“费用”时,按钮说明显示为“立即付款”。

【问题讨论】:

  • 最好的方法是使用数据绑定。查看here的一些示例。
  • 这与您之前的问题有何不同? stackoverflow.com/questions/67327943/…
  • 朋友您好,感谢您的解释。 Brendon,我打开了一个新问题,因为另一个问题有点难以理解,但我按照你的解释,什么也没发生。罗伯特,我在 devexpress 上看到过这张票,但我什么都不懂。这里有朋友发了一个loop但是发错了,我要改按钮名和单元格号。

标签: c# winforms datagridview devexpress devexpress-gridcontrol


【解决方案1】:
foreach (DataGridViewRow dgr in dataGridView1.Rows)
            {

                if (!dgr.IsNewRow)
                {
                    if (dgr.Cells[3].Value=="SERVICE")
                    {
                        dgr.Cells[4].Value = "Receive"; 
                    }
                    else if (dgr.Cells[3].Value == "Expense")
                    {
                        dgr.Cells[4].Value = "Pay now"; 
                    }
                }
            }

【讨论】:

  • 你好 nightman,非常感谢你的解释,事实上这是一个按钮,我需要更改 datagridview 内部的描述,而不是单元格。我用的是DevExpress datagridview,你知道怎么做吗?
  • 嗨,我不完全明白。你能举一个更解释的例子吗?
  • 是的,当然我有一个来自DevExpress的datagridview,在那个datagridview里面有一个带按钮的列,因为Type列的值被修改了,相应行的按钮只能改变按钮的标题,因为我以绿色和黄色突出显示了按钮。了解我的朋友吗?
  • 我试图这样做,但“for”正在为所有单元格分配按钮描述,正确的应该只针对那些“TYPE”彼此不同的单元格,什么是我做错了吗?
【解决方案2】:

我尝试这样做,但是“for”正在将按钮描述分配给所有单元格,正确的描述应该只针对那些“TYPE”彼此不同的单元格,我做错了什么?

    private void bandedGridView1_CellValueChanged(object sender, CellValueChangedEventArgs e)
    {
        BandedGridView view = sender as BandedGridView;
        if (view == null) return;

        if (e.Column.Caption == "BUTTON")
        {
            var value = bandedGridView1.GetFocusedRowCellValue("TYPE");
                           
            if ( value == "SERVICE")
            {

                for (int i = 0; i < bandedGridView1.DataRowCount; i++)
                {
                    DataRow row = bandedGridView1.GetDataRow(i);
                    
                    RepositoryItemButtonEdit riButton = new RepositoryItemButtonEdit();

                    riButton.TextEditStyle = TextEditStyles.HideTextEditor;

                    riButton.Buttons[0].Kind = ButtonPredefines.Glyph;
                    riButton.Buttons[0].Caption = "Receive";
                    
                    riButton.ButtonClick += AcaoBotaoDataGrid_ButtonClick;
                    dtgQuadroSorteio.RepositoryItems.Add(riButton);
                    bandedGridColumn1.ColumnEdit = riButton;

                }

            }
            else if (value == "EXPENSE")
            {
               for (int i = 0; i < bandedGridView1.DataRowCount; i++)
                {
                    DataRow row = bandedGridView1.GetDataRow(i);
                    
                    RepositoryItemButtonEdit riButton = new RepositoryItemButtonEdit();

                    riButton.TextEditStyle = TextEditStyles.HideTextEditor;

                    riButton.Buttons[0].Kind = ButtonPredefines.Glyph;
                    riButton.Buttons[0].Caption = "Pay now";
                    
                    riButton.ButtonClick += AcaoBotaoDataGrid_ButtonClick;
                    dtgQuadroSorteio.RepositoryItems.Add(riButton);
                    bandedGridColumn1.ColumnEdit = riButton;

                }
            }
           
        }

enter image description here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多