using System.Windows.Forms; namespace CustomControl { public class MyPanel : Panel { protected override void OnPaintBackground(PaintEventArgs pevent) { } } public class MyRichTextBox : RichTextBox { private bool allowedKeypress; protected override void OnKeyPress(KeyPressEventArgs e) { e.Handled = true; if (!allowedKeypress) System.Media.SystemSounds.Beep.Play(); } protected override void OnKeyDown(KeyEventArgs e) { allowedKeypress = e.Control && (e.KeyCode == Keys.A || e.KeyCode == Keys.C || e.KeyCode == Keys.Insert || e.KeyCode == Keys.Y || e.KeyCode == Keys.Z); if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Back || e.KeyCode == Keys.Delete || (e.Control && (e.KeyCode == Keys.V || e.KeyCode == Keys.X)) || (e.Shift && (e.KeyCode == Keys.Insert || e.KeyCode == Keys.Delete))) { if (e.KeyCode == Keys.Delete || (e.Shift && (e.KeyCode == Keys.Insert || e.KeyCode == Keys.Delete))) System.Media.SystemSounds.Beep.Play(); e.Handled = true; } else base.OnKeyDown(e); } } }