方法一
定义一个方法
private
void
TextBoxDec_KeyPress(
object
sender, KeyPressEventArgs e)
{
if (e.KeyChar != 8 && ! Char.IsDigit(e.KeyChar) && e.KeyChar != ' . ' )
{
e.Handled = true ;
}
}
{
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);
}
}
{
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 ;
}
}
}
{
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 ;
}
}
}