繁体   English   中英

DevExpress - 如何在 datagridview 中动态修改按钮标题

[英]DevExpress - How do I dynamically modify button caption within a datagridview

请帮助我解决 Devexpress 的问题。

如何动态修改 datagridview 中的按钮标题

例如:在“总销售额”列中,如果值低于 100,则按钮必须具有标题“低值”,现在如果值高于 101,则按钮必须显示“高于值”

当我这么说时,请帮助我,谢谢

        private void bandedGridView1_CustomRowCellEdit(object sender, DevExpress.XtraGrid.Views.Grid.CustomRowCellEditEventArgs e)
    {
        if (e.Column.Caption == "bandedGridColumn1")
        {
            int val = Convert.ToInt32(bandedGridView1.GetRowCellValue(e.RowHandle, "VAGAS"));
            RepositoryItemButtonEdit ritem = new RepositoryItemButtonEdit();
            if (val == 20)
            {
                ritem.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.HideTextEditor;
                ritem.Buttons[0].Caption = "Gerar Sorteio";
                ritem.Buttons[0].Visible = false;
                e.RepositoryItem = ritem;
            }

        }
    }

要使标题可见,您需要将 RepositoryItemButtonEdit 的Kind属性设置为 Glyph。

回答我的问题

  • 我创建了一个名为 ApresentaBotoesNoDataGrid() 的方法

私人无效 ApresentaBotoesNoDataGrid() {

        RepositoryItemButtonEdit riBtnEditMatricular = new RepositoryItemButtonEdit();
        riBtnEditMatricular.Name = "riBtnEditMatricular";
        riBtnEditMatricular.Buttons[0].Kind = DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph;
        riBtnEditMatricular.Buttons[0].Caption = "Matricular";
        riBtnEditMatricular.ButtonsStyle = DevExpress.XtraEditors.Controls.BorderStyles.Office2003;
        riBtnEditMatricular.Buttons[0].Appearance.BackColor = Color.LimeGreen;
        riBtnEditMatricular.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.HideTextEditor;
        riBtnEditMatricular.ButtonClick += AcaoBotaoDataGrid_ButtonClick;

        RepositoryItemButtonEdit riBtnEditSortear = new RepositoryItemButtonEdit();
        riBtnEditSortear.Name = "riBtnEditSortear";
        riBtnEditSortear.Buttons[0].Kind = DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph;
        riBtnEditSortear.Buttons[0].Caption = "Sortear";
        riBtnEditSortear.ButtonsStyle = DevExpress.XtraEditors.Controls.BorderStyles.Office2003;
        riBtnEditSortear.Buttons[0].Appearance.BackColor = Color.FromArgb(255, 240, 208);
        riBtnEditSortear.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.HideTextEditor;
        riBtnEditSortear.ButtonClick += AcaoBotaoDataGrid_ButtonClick;
    
        dtgQuadroSorteio.RepositoryItems.Add(riBtnEditMatricular);
        dtgQuadroSorteio.RepositoryItems.Add(riBtnEditSortear);
        bandedGridView1.CustomRowCellEdit += bandedGridView1_CustomRowCellEdit;
        bandedGridView1.RowCellStyle += bandedGridView1_RowCellStyle;

    }
  • 称为 AcaoBotaoDataGrid_ButtonClick 的其他方法

void AcaoBotaoDataGrid_ButtonClick(object sender, ButtonPressedEventArgs e) { var value = bandedGridView1.GetFocusedRowCellValue("CODELETIVA");

        ButtonEdit buttonEdit = (ButtonEdit)sender;
        if (buttonEdit.Properties.Name == "riBtnEditMatricular" && e.Button.Kind == DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph)
        {
            XtraMessageBox.Show("Receive Button Clicked on row handle " + value.ToString());
        }
        else if (buttonEdit.Properties.Name == "riBtnEditSortear" && e.Button.Kind == DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph)
        {
            XtraMessageBox.Show("Pay Now Button Clicked on row handle " + value.ToString());
        }

    }
  • 事件

     private void bandedGridView1_CustomRowCellEdit(object sender, DevExpress.XtraGrid.Views.Grid.CustomRowCellEditEventArgs e) { if (e.Column.FieldName;= "Button") return; BandedGridView view = (BandedGridView)sender. string type = (string)view.GetRowCellValue(e,RowHandle; "TEMPERATURA"). if (type == "Grande Procura") e.RepositoryItem = dtgQuadroSorteio;RepositoryItems["riBtnEditSortear"]. else e.RepositoryItem = dtgQuadroSorteio;RepositoryItems["riBtnEditMatricular"]; }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM