C#中datagridview单元格样式
能不能设置datagridview中的一列,只接受数字输入,并只保留两位小数。我在单元格样式里明明设置成数字,并保留两位小数,单运行的时候不起作用。该列还是可以输入任意字符,而且即使输入数字,也没有自动保留两位小数。 --------------------编程问答-------------------- 在defaultCellStyle属性中试试看 --------------------编程问答-------------------- private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e){
double d= 0.0;
dataGridView1.Rows[e.RowIndex].ErrorText = string.Empty;
if(dataGridView1.Columns[e.ColumnIndex].DataPropertyName == "")
{
if(!double.TryParse(e.FormattedValue.ToString(),out d) )
{
dataGridView1.Rows[e.RowIndex].ErrorText = "输入有误!";
e.Cancel = true;
}
}
}
--------------------编程问答-------------------- ding --------------------编程问答-------------------- 你看这样行不?
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
string sss = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
if (Regex.IsMatch(sss, "^[0-9]+(.[0-9]{2})?$"))
{
if (Regex.IsMatch(sss, "^[0-9]*$"))
{
double ggg = Convert.ToDouble(sss);
string s = string.Format("{0:0.00}", ggg);
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = s;
}
}
else
{
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = "";
}
} --------------------编程问答-------------------- 我还有一个问题,通过代码应该可以实现,但是为啥,我在datagridview提供的cellstyle里设不行呢,是不是我有什么地方没设对,或者要什么前提?!高手给个解答! --------------------编程问答-------------------- 你可以在后台写个检查方法 ,并且将你那一列设置围殴模板列,然后当用户 鼠标焦点离开时,检查一下,如果不符合你的要求,就提醒重新输入 。。。
补充:.NET技术 , C#