Skip to content

How to override browser default shortcuts (Ctrl+S, Ctrl+P, Ctrl+X, Ctrl+V) in Wisej? #4835

Description

@itg-assistant

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

SaveDraft()

Ctrl+P → call

Publish()

Ctrl+N → new mask

F5 → refresh preview

Ctrl+C / Ctrl+X / Ctrl+V / Delete / Insert / Ctrl+D → manipulate rows in my DataGridView (

_gridFelder

).

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

  • Using a KeyDown handler:

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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    GeneralQuestions, how-tos and everything else.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions