HardwareKeys Enumeration

[This documentation is for preview only, and is subject to change in later releases. Blank topics are included as placeholders.]

Specifies the hardware buttons on a Pocket PC that can be accessed by the HardwareButton class.

Namespace:  Microsoft.WindowsCE.Forms
Assembly:  Microsoft.WindowsCE.Forms (in Microsoft.WindowsCE.Forms.dll)

public enum HardwareKeys

Member nameDescription
Supported by the .NET Compact FrameworkNoneSpecifies that no actual hardware buttons are associated with this HardwareButton instance.
Supported by the .NET Compact FrameworkApplicationKey1Specifies the hardware button that corresponds to application 1.
Supported by the .NET Compact FrameworkApplicationKey2Specifies the hardware button that corresponds to application 2.
Supported by the .NET Compact FrameworkApplicationKey3Specifies the hardware button that corresponds to application 3.
Supported by the .NET Compact FrameworkApplicationKey4Specifies the hardware button that corresponds to application 4.
Supported by the .NET Compact FrameworkApplicationKey5Specifies the hardware button that corresponds to application 5.
Supported by the .NET Compact FrameworkApplicationKey6Specifies the hardware button that corresponds to application 6.

The form or control associated with a member of this enumeration can receive the KeyDown and KeyUp events when the corresponding hardware button is pressed.


The hardware buttons correspond to the application keys on a Pocket PC. The application keys are not included in the core key set, so their hardware key mapping may vary from one keyboard layout to the next. Only the default hardware key mapping on the device is supported.

This enumeration is not supported and throws a NotSupportedException on the Smartphone and other Windows CE devices that are not Pocket PCs.

The following code example uses the AssociatedControl and HardwareKey properties to display a form whenever the first and fourth buttons on Pocket PC are pressed. This code example is part of a larger example provided for the HardwareButton class.

// Configure hardware buttons
// 1 and 4 to activate the current form.
private void HBConfig()
            hwb1 = new HardwareButton();
            hwb4 = new HardwareButton();
            hwb1.AssociatedControl = this;
            hwb4.AssociatedControl = this;
            hwb1.HardwareKey = HardwareKeys.ApplicationKey1;
            hwb4.HardwareKey = HardwareKeys.ApplicationKey4;
        catch (Exception exc)
            MessageBox.Show(exc.Message + " Check if the hardware button is physically available on this device.");

// When a hardware button is pressed and released,
// this form receives the KeyUp event. The OnKeyUp
// method is used to determine which hardware
// button was pressed, because the event data
// specifies a member of the HardwareKeys enumeration.
private void OnKeyUp(object sender, KeyEventArgs e)
    switch ((HardwareKeys)e.KeyCode)
        case HardwareKeys.ApplicationKey1:
            statusBar1.Text = "Button 1 pressed.";

        case HardwareKeys.ApplicationKey4:
            statusBar1.Text = "Button 4 pressed.";


Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Compact Framework

Supported in: 3.5, 2.0