昨天有群友提问如何在gridcontrol某列中按照条件给该列的单元格设置不同按钮,可能需要并排,直接进入主题,贴一下代码:
public partial class Form1 : Form
{
// by xiao wu丶
public Form1()
{
InitializeComponent();
this.gridView1.CustomRowCellEdit += GridView1_CustomRowCellEdit;
var unboundColumn = gridView1.Columns.AddVisible("gridColumn9");//添加一个测试列,可以不添加,直接使用绑定的列
unboundColumn.UnboundType = DevExpress.Data.UnboundColumnType.Object;
gridView1.OptionsView.ShowButtonMode = DevExpress.XtraGrid.Views.Base.ShowButtonModeEnum.ShowAlways;
}
private void GridView1_CustomRowCellEdit(object sender, DevExpress.XtraGrid.Views.Grid.CustomRowCellEditEventArgs e)
{
if (gridView1.GetRowCellValue(e.RowHandle, "gridColumn1").ToString() == "1" &&
e.Column.FieldName == "gridColumn9")
e.RepositoryItem = CreateRepositoryItem(0);
if (gridView1.GetRowCellValue(e.RowHandle, "gridColumn1").ToString() == "21" &&
e.Column.FieldName == "gridColumn9")
e.RepositoryItem = CreateRepositoryItem(1);
}
private RepositoryItem CreateRepositoryItem(int v)
{
var riButtonEdit = new RepositoryItemButtonEdit();
riButtonEdit.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.HideTextEditor;
riButtonEdit.Buttons[0].Kind = DevExpress.XtraEditors.Controls.ButtonPredefines.OK;
if (v > 0)
riButtonEdit.Buttons.Add(new DevExpress.XtraEditors.Controls.EditorButton() { Kind = DevExpress.XtraEditors.Controls.ButtonPredefines.Close });
// riButtonEdit.Buttons[v].Enabled = false; //启用这个,并且关闭判断条件,会显示二个,然后可以根据 V 来设置某个按钮不可用
riButtonEdit.ButtonClick += RiButtonEdit_ButtonClick;
return riButtonEdit;
}
private void RiButtonEdit_ButtonClick(object sender, ButtonPressedEventArgs e)
{
if (e.Button.Kind == DevExpress.XtraEditors.Controls.ButtonPredefines.Close)
MessageBox.Show("Hello");
if (e.Button.Kind == DevExpress.XtraEditors.Controls.ButtonPredefines.OK)
MessageBox.Show("Hi");
}
private void Form1_Load(object sender, EventArgs e)
{
var temp = new List<myclass>()
{
new myclass()
{
gridColumn1 = "1",
gridColumn2 = "2",
gridColumn3 = "3",
gridColumn4 = "4",
gridColumn5 = "15",
gridColumn6 = "16",
gridColumn7 = "17",
// gridColumn8 = "2"
},
new myclass()
{
gridColumn1 = "21",
gridColumn2 = "22",
gridColumn3 = "23",
gridColumn4 = "24",
gridColumn5 = "215",
gridColumn6 = "216",
gridColumn7 = "217",
// gridColumn8 = "22"
}
};
gridControl1.DataSource = temp;
}
}
//操作类
public class myclass
{
public string gridColumn1 { get; set; }
public string gridColumn2 { get; set; }
public string gridColumn3 { get; set; }
public string gridColumn4 { get; set; }
public string gridColumn5 { get; set; }
public string gridColumn6 { get; set; }
public string gridColumn7 { get; set; }
public string gridColumn8 { get; set; }
}
以上就是代码demo,有问题可以留言,转载请注明来源,谢谢