在Flexgrid中为一列中的每一行设置不同的编辑器
本帖最后由 Richard.Ma 于 2020-9-8 01:19 编辑Flexgrid中每一列可以设置列数据类型,控件可以根据绑定的数据类型自动设置或者手动设置。对于不同的列类型,都会有对应的列编辑器与之对应
除此之外,Flexgrid也提供了自定义列编辑器的功能,我们可以通过代码来设置列编辑器
c1FlexGrid1.Cols.Editor = new NumericUpDown();
上述情况下,一列的所有行都使用的是一种编辑器。但是在某些情况下,我们希望编辑器可以更加灵活,比如根据编辑的单元格值不同,为此单元格设置不同的编辑器,
比如下图的效果,在该列是String的情况下,为数值使用数字编辑器,为文本使用文本编辑器
要实现这个功能,我们可以在BeforeEdit事件中对单元格的值进行判断,然后重新设置编辑器
private void C1FlexGrid1_BeforeEdit(object sender, C1.Win.C1FlexGrid.RowColEventArgs e)
{
int intvalue;
if (e.Col == 1 && int.TryParse(c1FlexGrid1.ToString(), out intvalue))
{
c1FlexGrid1.Cols.Editor = new NumericUpDown();
}
else
{
c1FlexGrid1.Cols.Editor = new TextBox();
}
}
页:
[1]