diff options
Diffstat (limited to 'script-editor/CustomControl.cs')
-rw-r--r-- | script-editor/CustomControl.cs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/script-editor/CustomControl.cs b/script-editor/CustomControl.cs new file mode 100644 index 0000000..829565c --- /dev/null +++ b/script-editor/CustomControl.cs @@ -0,0 +1,35 @@ +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); + } + } +} |