DataGridViewでCtrl+0(null値入力)の抑制

DataGridView を継承したクラスを作成。
ProcessDialogKey() と ProcessDataGridViewKey() をオーバーライドして Ctrl+0 の時に基底クラスのメソッドを呼ばないようにする。

protected override bool ProcessDialogKey(Keys keyData)
{
  if (Pressed(keyData, keys.Control) &&
    Pressed(keyData, keys.D0, Keys.NumPad0))
  {
    return true;
  }

  return base.ProcessDialogKey(keyData);
}

protected override bool ProcessDataGridViewKey(KeyEventArgs e)
{
  if (e.Control && Pressed(e.KeyCode, Keys.D0, Keys.NumPad0))
  {
    return true;
  }

  return base.ProcessDataGridViewKey(e);
}

bool Pressed(Keys keyData, params Keys[] keyList)
{
  Keys mask = Keys.None;
  foreach (Keys key in keyList)
  {
    mask |= key;
  }

  foreach (Keys key in keyList)
  {
    if ((keyData & mask) == key)
    {
      return true;
    }
  }

  return false;
}