设置cell的可输入位数的问题
我想在CellBeginEdit的时候改变某个cell的可输入位数,在代码里应该怎么写? 看你具体用的什么Cell,如果是TextBoxCell,请设置MaxLength属性,就好了。 回复 2楼wedy.wang的帖子是TextBoxCell,现在就是编辑状态下只能输入6位,但表示的时候要8位表示,在Form代码中CurrentCell没有MaxLength的属性,只能在模板代码里写了方法调用了但还是表示了6位,求教啊~~
请使用下面的方法尝试一下:
Step1: 在Template当中设置TextBoxCell.MaxLength= 6
Step2:在Form中,处理GcMultiRow.CellFormatting事件,事件处理函数像下面一样:
private void gcMultiRow1_CellFormatting(object sender, GrapeCity.Win.MultiRow.CellFormattingEventArgs e)
{
if (e.CellName == "textBoxCell1")
{
if (e.Value != null)
{
e.Value = e.Value + "12";
}
}
}
这样处理之后,在编辑状态最多输入6个字符,显示的时候可以多显示一个“12”,你根据自己的需求决定如何改造上面的处理函数吧。 版主,我试了,输入的时候还是可以输入8位的,可以把你的DEMO发我看看吗? 不好意思,回复晚了。
请确保你已经在Template当中给Cell设置了MaxLength为6.
然后,请看下面的代码:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.gcMultiRow1.CellFormatting += gcMultiRow1_CellFormatting;
this.gcMultiRow1.EditingControlShowing += gcMultiRow1_EditingControlShowing;
}
void gcMultiRow1_EditingControlShowing(object sender, GrapeCity.Win.MultiRow.EditingControlShowingEventArgs e)
{
if (this.gcMultiRow1.CurrentCellPosition.CellName == "textBoxCell1")
{
TextBox textBox = e.Control as TextBox;
if (e.Control.Text.Length > textBox.MaxLength)
{
int removeLength = e.Control.Text.Length - textBox.MaxLength;
e.Control.Text = e.Control.Text.Remove(textBox.MaxLength, removeLength);//确保编辑状态为6位。
}
}
}
void gcMultiRow1_CellFormatting(object sender, GrapeCity.Win.MultiRow.CellFormattingEventArgs e)
{
if (e.CellName == "textBoxCell1")
{
if (e.Value != null)
{
e.Value = e.Value + "12";//增加两位
}
}
}
} 问题已解决,感谢版主!
页:
[1]