User Interaction & Shortcuts

User Interaction & Shortcuts provides a comprehensive set of keyboard and mouse event handlers along with context menu actions to facilitate efficient text editing and navigation.

Overview

This section documents the behaviors and properties related to user interactions, including keyboard shortcuts, mouse events, context menu operations, and command key processing. These features ensure that developers can leverage built‐in support for common editing commands and custom shortcuts for an enhanced user experience.


Key Points

Aspect
Description

Keyboard Navigation

Supports arrow keys, Home, End, Page Up/Down, and other navigation keys to move the cursor and modify selection.

Editing Shortcuts

Implements common editing shortcuts such as Ctrl+Z (Undo), Ctrl+Y (Redo), Ctrl+B (Bold), Ctrl+I (Italic), and Ctrl+U (Underline).

Mouse Interactions

Handles mouse clicks, double-clicks, dragging for selection, and right-click context menu invocation for editing commands.

Context Menu Operations

Provides standard options (Copy, Cut, Paste, Delete, Select All) via a context menu for ease of text manipulation.


Best Practices

Practice Area
Recommendation

Consistent Shortcut Usage

Leverage the built‐in shortcuts to meet user expectations; avoid overloading keys to prevent conflicts with standard Windows shortcuts.

Preserve Default Behavior

When extending key handling, ensure that navigation and essential editing keys are not inadvertently suppressed.

Context Menu Customization

If extending the context menu, maintain the order and availability of core actions (Copy, Cut, Paste, etc.) to preserve usability.

Accessibility Considerations

Ensure that keyboard shortcuts are documented and accessible, allowing users who rely on keyboard navigation to operate the control efficiently.


Common Pitfalls

Pitfall
Description

Overriding Navigation Keys

Customizing key events without preserving arrow and navigation key functionality may lead to unexpected or non-intuitive cursor behavior.

Shortcut Conflicts

Assigning non-standard shortcuts or interfering with system-wide commands can confuse users and degrade the overall experience.

Inadequate Context Menu Feedback

Failing to update the context menu state (e.g., enabling/disabling items based on selection) may lead to user confusion or unintended actions.

Ignoring Modifier Keys

Not correctly handling combinations with Control, Shift, or Alt may result in missing out on intended behaviors such as selection extension or formatting toggles.


Real Life Usage Scenarios

Scenario
Description

Text Editors and IDEs

Utilize the full range of keyboard shortcuts and context menu actions to provide a familiar editing experience similar to modern code editors.

Data Entry Applications

Enable efficient navigation and editing for forms with extensive text input, leveraging Undo/Redo and selection shortcuts.

Rich Text Input Controls

Support advanced formatting commands (e.g., bold, italic) via keyboard shortcuts to empower users in content creation scenarios.

Accessibility-Focused Interfaces

Offer robust keyboard support to ensure users who rely on non-mouse navigation have complete control over text editing and selection.


Troubleshooting Tips

Issue
Suggested Solution

Keyboard Shortcuts Not Working

Verify that key event handlers (OnKeyDown, OnKeyPress) are correctly wired and that the control is focused when shortcuts are used.

Context Menu Actions Disabled

Ensure that the context menu items (Copy, Cut, Paste, etc.) are correctly configured based on the selection state and the control’s read-only status.

Navigation Keys Behaving Unexpectedly

Check that custom key handling logic preserves the default behavior for arrow keys and other navigation keys, especially when modifier keys are pressed.

Shortcut Conflicts with External Tools

Review any custom shortcut assignments to avoid conflicts with standard Windows shortcuts or other application-level keyboard bindings.


Property Reference

While User Interaction & Shortcuts are primarily managed through event handling rather than individual properties, the following related properties and methods are critical:

Property/Method Name
Type/Return
Description

IsInputKey(Keys keyData)

bool

Determines whether the specified key is recognized as an input key, ensuring proper handling of navigation and editing keys.

OnKeyDown(KeyEventArgs e)

void

Handles key down events for navigation, command shortcuts (e.g., Ctrl+Z, Ctrl+Y), and formatting toggles (e.g., Ctrl+B, Ctrl+I, Ctrl+U).

OnKeyPress(KeyPressEventArgs e)

void

Processes character input and updates the text content accordingly.

ProcessCmdKey(ref Message msg, Keys keyData)

bool

Overrides command key processing to handle undo, redo, and other keyboard shortcuts.

ContextMenuStrip

ContextMenuStrip

Provides a context menu with standard actions like Copy, Cut, Paste, Delete, and Select All.


Code Examples

Below are several code examples that demonstrate the usage of User Interaction & Shortcuts features.

Example 1: Using Keyboard Shortcuts for Editing

This example shows how the control processes keyboard shortcuts to perform actions such as undo, redo, and toggling font styles.

using System;
using System.Drawing;
using System.Windows.Forms;
using SiticoneNetFrameworkUI;

public class KeyboardShortcutForm : Form
{
    public KeyboardShortcutForm()
    {
        var customTextBox = new SiticoneTextBox
        {
            Text = "Press Ctrl+Z to Undo, Ctrl+Y to Redo, Ctrl+B for Bold, Ctrl+I for Italic, and Ctrl+U for Underline.",
            Location = new Point(20, 20),
            Size = new Size(400, 60)
        };

        Controls.Add(customTextBox);
        Text = "Keyboard Shortcuts Demo";
        Size = new Size(460, 140);
    }

    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.Run(new KeyboardShortcutForm());
    }
}

Example 2: Context Menu for Copy, Cut, Paste

This example demonstrates how the built-in context menu is used to provide editing commands via right-click.

using System;
using System.Drawing;
using System.Windows.Forms;
using SiticoneNetFrameworkUI;

public class ContextMenuForm : Form
{
    public ContextMenuForm()
    {
        var customTextBox = new SiticoneTextBox
        {
            Text = "Right-click to see the context menu with Copy, Cut, Paste, Delete, and Select All options.",
            Location = new Point(20, 20),
            Size = new Size(400, 60)
        };

        Controls.Add(customTextBox);
        Text = "Context Menu Demo";
        Size = new Size(460, 140);
    }

    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.Run(new ContextMenuForm());
    }
}

Example 3: Handling Custom Shortcut Actions

This example demonstrates adding additional custom shortcut logic in the control's key handling routines.

using System;
using System.Drawing;
using System.Windows.Forms;
using SiticoneNetFrameworkUI;

public class CustomShortcutForm : Form
{
    public CustomShortcutForm()
    {
        var customTextBox = new SiticoneTextBox
        {
            Text = "Custom shortcuts can be implemented in addition to built-in commands.",
            Location = new Point(20, 20),
            Size = new Size(400, 60)
        };

        // Attach an event handler for key down events to add a custom shortcut (e.g., Ctrl+M to show a message)
        customTextBox.KeyDown += (sender, e) =>
        {
            if (e.Control && e.KeyCode == Keys.M)
            {
                MessageBox.Show("Custom shortcut Ctrl+M triggered!", "Shortcut", MessageBoxButtons.OK, MessageBoxIcon.Information);
                e.Handled = true;
            }
        };

        Controls.Add(customTextBox);
        Text = "Custom Shortcut Demo";
        Size = new Size(460, 140);
    }

    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.Run(new CustomShortcutForm());
    }
}

Frequently Asked Questions

Question
Answer

How does the control support keyboard navigation and editing?

The control overrides key event handlers (OnKeyDown, OnKeyPress, ProcessCmdKey) to capture navigation keys, editing shortcuts, and command key combinations.

What default shortcuts are supported?

Common shortcuts include Ctrl+Z (Undo), Ctrl+Y (Redo), Ctrl+B (Bold), Ctrl+I (Italic), and Ctrl+U (Underline), in addition to standard navigation keys.

How is the context menu activated?

The context menu is shown on right-click and includes options such as Copy, Cut, Paste, Delete, and Select All, with availability based on the current selection state.

Can I add my own custom shortcuts?

Yes, you can handle additional key events (e.g., Ctrl+M) in the OnKeyDown event to implement custom shortcuts without interfering with default behavior.

How do I ensure that shortcut keys do not conflict with system commands?

Verify that custom shortcuts are chosen carefully and test in your application environment to ensure they do not interfere with standard Windows shortcuts.


Integration Checklist

Step
Verification

Keyboard Navigation Functionality

Confirm that the arrow keys, Home, End, and other navigation keys work as expected when the control is focused.

Shortcut Handling

Test built-in shortcuts (Ctrl+Z, Ctrl+Y, Ctrl+B, Ctrl+I, Ctrl+U) to ensure they trigger the intended actions.

Context Menu Availability

Verify that the context menu appears on right-click and that all menu items (Copy, Cut, Paste, Delete, Select All) are enabled/disabled appropriately.

Custom Shortcut Implementation

Check that any added custom shortcuts do not interfere with default functionality and that they trigger the correct custom logic.

Event Propagation

Ensure that key and mouse events are correctly processed and that essential events are not inadvertently suppressed.

Consistency Across States

Test the control in different states (editable, read-only, disabled) to ensure that user interactions behave consistently.

Accessibility Compliance

Verify that keyboard interactions are fully accessible and that shortcuts are documented for users relying on non-mouse input.


Review

Review Aspect
Details

Interaction Responsiveness

The control effectively processes a wide range of keyboard and mouse events, providing a responsive and intuitive editing experience.

Shortcut Consistency

Built-in and custom shortcuts are implemented to meet common user expectations, aligning with standard Windows behavior.

Context Menu Integration

The integrated context menu ensures that standard editing operations are readily available, enhancing usability.

Customization Flexibility

Developers can extend and customize key handling to add additional shortcuts or override default behavior as needed.


Summary

User Interaction & Shortcuts enhances the text box control by providing robust support for keyboard and mouse event handling, built-in editing shortcuts, and context menu operations.

These features ensure that users can navigate and manipulate text efficiently while enabling developers to extend and customize the interaction model as required.

Last updated