入力時に無効な値が表示されないようにするには、EditingControl.KeyPress
イベントを処理できます。以下のサンプルコード。ただし、正規表現を変更して不完全な値を許可する必要があります。また、データをグリッドに取り込む他の方法(コピー貼り付けなど)があるので、適切な検証を使用する必要があります。
private string pattern = "^[0-9]{0,2}$";
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
dataGridView1.EditingControl.KeyPress -= EditingControl_KeyPress;
dataGridView1.EditingControl.KeyPress += EditingControl_KeyPress;
}
private void EditingControl_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar))
{
Control editingControl = (Control)sender;
if (!Regex.IsMatch(editingControl.Text + e.KeyChar, pattern))
e.Handled = true;
}
}
そのような入力値を制限するとき、それは "マスク"と呼ばれます:[this](http://stackoverflow.com/questions/6411511/datagridview-mask-values-in-column) –
を参照してくださいWinFormsでうまく動作しないjavascript/jQuery –
@pawlakpppを使用する必要があります:) –