您的位置:首页 > 其它

winform下dataGridView中限制某列只能输入数字

2008-03-24 09:45 471 查看
方法一

定义一个方法

private void TextBoxDec_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar != 8 && !Char.IsDigit(e.KeyChar) && e.KeyChar != '.')
{
e.Handled = true;
}
}

然后在dataGridView的EditingControlShowing事件中

private void dataGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (this.dgvFenl.CurrentCell.ColumnIndex == 列索引)
{
e.Control.KeyPress += new KeyPressEventHandler(TextBox_KeyPress);
}
}

方法二

在dataGridView的CellValidating事件中

private void dgvTix_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
dgvTix.Rows[e.RowIndex].ErrorText = "";

if (e.ColumnIndex == 3)
{
int newInteger = 0;
if (!int.TryParse(e.FormattedValue.ToString(), out newInteger) || newInteger < 0)
{
e.Cancel = true;
dgvTix.Rows[e.RowIndex].ErrorText = "题数格式错误,请重新输入。";
MessageBox.Show("题数格式错误,请重新输入。");
return;
}
}
else if (e.ColumnIndex == 4)
{
float newFloat = 0.00f;
if (!float.TryParse(e.FormattedValue.ToString(), out newFloat) || newFloat < 0.00)
{
e.Cancel = true;
dgvTix.Rows[e.RowIndex].ErrorText = "分数格式错误,请重新输入";
MessageBox.Show("分数格式错误,请重新输入。");
return;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: