设定datagridview第一列中每个单元格输入的最大字符长度为10
问题描述:
若超过10 messageboxshow输入错误,请重新输入 源码
答
计时器延时执行下,要不确实存在这个问题,blur后就没搞了
private void dgv1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
int max = 5;
if (e.ColumnIndex == 0 && dgv1.CurrentCell.Value != null && dgv1.CurrentCell.Value.ToString().Length > max)
{
MessageBox.Show("姓名最大长度为:" + max + "个字符,请重新输入!");
DataGridViewCell cur = dgv1.CurrentCell;
System.Timers.Timer t = new System.Timers.Timer(10);
t.Elapsed += delegate(object tsender, System.Timers.ElapsedEventArgs te)
{
this.Invoke(new SetCur(() =>
{
dgv1.CurrentCell = cur;
dgv1.BeginEdit(true);
t.Enabled = false;
t.Close();
}));
};
t.Enabled = true;
}
}
答
添加CellEndEdit事件,套下面的代码就行
private void dgv1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
int max = 10;
if (e.ColumnIndex == 0 && dgv1.CurrentCell.Value != null && dgv1.CurrentCell.Value.ToString().Length > max)
{
MessageBox.Show("姓名最大长度为:" + max + "个字符,请重新输入!");
DataGridViewCell cur = dgv1.CurrentCell;
dgv1.CurrentCell = cur;
dgv1.BeginEdit(true);
}
}
答
测试通过,请采纳showbo
答
两种方式:
1.DataGridView的CellValueChanged事件;添加CellValueChaned事件,判断触发的是否为第一列的单元格,如果是,直接判断长度,弹出消息就可以了
2.设置列的maxLength和ErrorText属性