日期:2014-05-18  浏览次数:20831 次

datagridview控制输入值
想控制单元格里的值,让它只能是数值,不能输入别的字符,最好像textbox里的textchange事件或者keypress的控制方法那样,找了些事件都达不到效果,以前用第三方控件Spread有个CellEditing的事件也很方便,但是gridview就不知道怎么做了,感觉很难控制
请教下怎么才能实现这个效果

------解决方案--------------------
用datagridview的EditingControlShowing这个事件把当前编辑的单元格变成textbox的格式的,就可以用textbox的方法啦~
------解决方案--------------------
private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
double s= 0.0;
dataGridView1.Rows[e.RowIndex].ErrorText = string.Empty;
if(dataGridView1.Columns[e.ColumnIndex].DataPropertyName == "")
{
if(!double.TryParse(e.FormattedValue.ToString(),out s) || s<0.0)
{
dataGridView1.Rows[e.RowIndex].ErrorText = "输入有误!";
e.Cancel = true;
}
}
}

private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
dataGridView1.Rows[e.RowIndex].ErrorText = string.Empty;
}