C1FlexGrid同一列里设置 不同输入格式
我要求是同一列里的不同行进行编辑,必须按照我的要求格式进行输入较验合法性,如第一行我是想输入日期,则可以在这一列里调用日期的输入方式选择日期,第二行我想输入数字,则按数字的输入框进行输入较验,等等更多行的输入都可以按照我的要求格式进入输入,这些行不是固定的,我可以自由增加减少grid类组件绑定的数据是行数据,每列应该是对应一个字段属性,因此通常来说应该是一个数据类型,没法满足你说的给每行设置不同的编辑器和校验规则,只能按列设置
c1FlexGrid2.Cols.Editor = new DateTimePicker();
c1FlexGrid2.Cols.EditorValidation.Add(new RangeRule() {Maximum=DateTime.Now,Minimum= DateTime.Now.AddDays(-100)});
如果要实现你的需求,推荐使用spread.net 这个控件类似于excel,每个单元格都是独立的,在不绑定数据的情况下,可以给每个单元格单独设置数据校验和编辑器
在C1FlexGrid的StartEdit事件中,对C1FlexGrid的Editor属性进行赋值。
private TextBox textBox = new TextBox();
private ComboBox comboBox = new ComboBox();
private DateTimePicker dateTimePicker = new DateTimePicker();
private NumericUpDown numericUpDown = new NumericUpDown();
private void c1FlexGrid1_StartEdit(object sender, C1.Win.C1FlexGrid.RowColEventArgs e)
{
switch (e.Row)
{
case 1:
c1FlexGrid1.Editor = comboBox;
break;
case 2:
c1FlexGrid1.Editor = dateTimePicker;
break;
case 3:
c1FlexGrid1.Editor = numericUpDown;
break;
default:
c1FlexGrid1.Editor = textBox;
break;
}
}
一路向东 发表于 2024-11-21 21:47
在C1FlexGrid的StartEdit事件中,对C1FlexGrid的Editor属性进行赋值。
但是,只能做到不同行输入不同格式的数据,而做不到你想输入日期就会显示日期控件,你想输入数字就显示数字控件(还做不到脑机互联)。 :hjyzw:
页:
[1]