Add code to the DataGridView editingcontrolshowing event:
if (this.dgv_pch. Columns[dgv_pch. Currentcell.columnindex]. HeaderText = = "Batch number")//Determine which column of the cell needs to be limited
{
(dgv_pch. Columns[dgv_pch. Currentcell.columnindex] as Datagridviewtextboxcolumn). Maxinputlength = 4;//Limit only input content length is 4
e.Control.KeyPress + = new Keypresseventhandler (editingcontrol_keypress);//limit only enter numbers
e.Control.KeyPress-= new Keypresseventhandler (editingcontrol_keypress);
}
private void Editingcontrol_keypress (object sender, KeyPressEventArgs e)
{
if (Convert.ToInt32 (e.keychar) = = 8)
{
e.handled = false;
}
Else
{
Regex Numregex = new Regex (@ "^ (-?[ 0-9]) $ "); Match Regular expression
Match result = Numregex.match (convert.tostring (E.keychar));
if (result. Success)//input is not a number
{
e.handled = false; The textbox content does not change
}
Else
{
E.handled = true; Save the value of the textbox now
}
}
}
DataGridView cell Input limit for WinForm