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; }