Public Datagridviewtextboxeditingcontrol celledit = null;
int idx = 1;
private void Datagridview1_editingcontrolshowing (object sender, Datagridvieweditingcontrolshowingeventargs e)
{
if (this.datagridview1.currentcelladdress.x = = idx)
{
Celledit = (Datagridviewtextboxeditingcontrol) E.control;
Celledit.selectall ();
Celledit.keypress + = cells_keypress; Binding events
}
}
private void Cells_keypress (object sender, KeyPressEventArgs e)//custom Event
{
if (this.datagridview1.currentcelladdress.x = = idx)
{
if (E.keychar = = 46)
{
e.handled = false;
Return
}
if (! ( E.keychar >= ' 0 ' && e.keychar <= ' 9 ')) e.handled = true;
if (E.keychar = = ' \b ') e.handled = false;
}
}
private void Datagridview1_cellvalidating (object sender, Datagridviewcellvalidatingeventargs e)
{
if (Datagridview1.rows[e.rowindex]. IsNewRow) return;
Decimal DCI;
if (E.columnindex = = idx)
{
if (e.formattedvalue! = null && e.formattedvalue.tostring (). Length > 0)
{
if (!decimal. TryParse (E.formattedvalue.tostring (), out DCI) | | DCI < 0)
{
E.cancel = true;
MessageBox.Show ("Please enter numbers or decimals", "Prompt",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
}
DataGridView set a column to be a number only