Rene Kolodziej asked 2025-08-20 10:07:17 UTC
Hello,
I’m building a designer-style app in Wisej, and I want to override the browser defaults for Ctrl+S and Ctrl+P (so they don’t trigger "Save page" or "Print") and also make Ctrl+X / Ctrl+V work reliably inside my grid.
For example, in my app I want:
Ctrl+S → call
Ctrl+P → call
Ctrl+N → new mask
F5 → refresh preview
Ctrl+C / Ctrl+X / Ctrl+V / Delete / Insert / Ctrl+D → manipulate rows in my DataGridView (
).
I tried two approaches:
Overriding ProcessCmdKey:
protected override bool ProcessCmdKey(Keys keyData)
{
if (keyData == (Keys.Control | Keys.S)) { SaveDraft(); return true; }
if (keyData == (Keys.Control | Keys.P)) { Publish(); return true; }
if (_gridFelder?.Focused == true)
{
if (keyData == (Keys.Control | Keys.C)) { CopyRow(); return true; }
if (keyData == (Keys.Control | Keys.X)) { CutRow(); return true; }
if (keyData == (Keys.Control | Keys.V)) { PasteRow(); return true; }
if (keyData == Keys.Delete) { DeleteRow(); return true; }
if (keyData == Keys.Insert) { AddRowBelow(); return true; }
}
return base.ProcessCmdKey(keyData);
}
private void Designer_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.S) { SaveDraft(); e.Handled = true; }
else if (e.Control && e.KeyCode == Keys.P) { Publish(); e.Handled = true; }
else if (e.KeyCode == Keys.F5) { RefreshPreview(); e.Handled = true; }
else if (e.Control && e.KeyCode == Keys.N) { NewMask(); e.Handled = true; }
else if (e.Control && e.KeyCode == Keys.C && _gridFelder.Focused) { CopyRow(); e.Handled = true; }
else if (e.Control && e.KeyCode == Keys.X && _gridFelder.Focused) { CutRow(); e.Handled = true; }
else if (e.Control && e.KeyCode == Keys.V && _gridFelder.Focused) { PasteRow(); e.Handled = true; }
else if (e.KeyCode == Keys.Delete && _gridFelder.Focused) { DeleteRow(); e.Handled = true; }
else if (e.KeyCode == Keys.Insert && _gridFelder.Focused) { AddRowBelow(); e.Handled = true; }
else if (e.Control && e.KeyCode == Keys.D && _gridFelder.Focused) { DuplicateRow(); e.Handled = true; }
}
Problem:
Browser still intercepts Ctrl+S and Ctrl+P (save/print dialog).
Ctrl+X and Ctrl+V don’t trigger at all.
? What’s the correct way in Wisej to fully disable browser default shortcuts and route them to app logic (especially in a DataGridView)?
Thanks in advance!
Rene Kolodziej asked 2025-08-20 10:07:17 UTC
Hello,
I’m building a designer-style app in Wisej, and I want to override the browser defaults for Ctrl+S and Ctrl+P (so they don’t trigger "Save page" or "Print") and also make Ctrl+X / Ctrl+V work reliably inside my grid.
For example, in my app I want:
Ctrl+S → call
Ctrl+P → call
Ctrl+N → new mask
F5 → refresh preview
Ctrl+C / Ctrl+X / Ctrl+V / Delete / Insert / Ctrl+D → manipulate rows in my DataGridView (
).
I tried two approaches:
Overriding ProcessCmdKey:
protected override bool ProcessCmdKey(Keys keyData)
{
if (keyData == (Keys.Control | Keys.S)) { SaveDraft(); return true; }
if (keyData == (Keys.Control | Keys.P)) { Publish(); return true; }
if (_gridFelder?.Focused == true)
{
if (keyData == (Keys.Control | Keys.C)) { CopyRow(); return true; }
if (keyData == (Keys.Control | Keys.X)) { CutRow(); return true; }
if (keyData == (Keys.Control | Keys.V)) { PasteRow(); return true; }
if (keyData == Keys.Delete) { DeleteRow(); return true; }
if (keyData == Keys.Insert) { AddRowBelow(); return true; }
}
return base.ProcessCmdKey(keyData);
}
private void Designer_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.S) { SaveDraft(); e.Handled = true; }
else if (e.Control && e.KeyCode == Keys.P) { Publish(); e.Handled = true; }
else if (e.KeyCode == Keys.F5) { RefreshPreview(); e.Handled = true; }
else if (e.Control && e.KeyCode == Keys.N) { NewMask(); e.Handled = true; }
else if (e.Control && e.KeyCode == Keys.C && _gridFelder.Focused) { CopyRow(); e.Handled = true; }
else if (e.Control && e.KeyCode == Keys.X && _gridFelder.Focused) { CutRow(); e.Handled = true; }
else if (e.Control && e.KeyCode == Keys.V && _gridFelder.Focused) { PasteRow(); e.Handled = true; }
else if (e.KeyCode == Keys.Delete && _gridFelder.Focused) { DeleteRow(); e.Handled = true; }
else if (e.KeyCode == Keys.Insert && _gridFelder.Focused) { AddRowBelow(); e.Handled = true; }
else if (e.Control && e.KeyCode == Keys.D && _gridFelder.Focused) { DuplicateRow(); e.Handled = true; }
}
Problem:
Browser still intercepts Ctrl+S and Ctrl+P (save/print dialog).
Ctrl+X and Ctrl+V don’t trigger at all.
? What’s the correct way in Wisej to fully disable browser default shortcuts and route them to app logic (especially in a DataGridView)?
Thanks in advance!