HardwareButton Class

Allows overriding the functionality of Pocket PC hardware buttons.

Namespace: Microsoft.WindowsCE.Forms
Assembly: Microsoft.WindowsCE.Forms (in microsoft.windowsce.forms.dll)

Public Class HardwareButton
	Inherits Component
Dim instance As HardwareButton

public class HardwareButton extends Component
public class HardwareButton extends Component
Not applicable.

You can configure a button on a Pocket PC to activate a Form, Panel, or custom control in your application by doing the following:

  • Create an instance of HardwareButton.

  • Set the AssociatedControl property to the form or control you want to activate.

  • Set the HardwareKey property to one of the HardwareKeys enumeration values. You can configure up to six hardware buttons.

When a hardware button is associated with a control, the control receives a KeyDown event when the button is pressed and a KeyUp event when the button is released.

To return a hardware button to its original state, set the AssociatedControl property to a null reference (Nothing in Visual Basic).

Note that some Pocket PCs have a different number of hardware buttons besides six. Also, not all buttons are supported by the operating system. Windows Mobile 2003 for Pocket PC supports four buttons and Windows Mobile version 5.0 software for Pocket PC supports five buttons.

This class is not supported on the Smartphone and other Windows CE devices that are not Pocket PCs.

The following code example shows how to activate a form using the first and fourth hardware buttons on a Pocket PC.

Imports System
Imports System.Windows.Forms
Imports Microsoft.WindowsCE.Forms

Public Class Form1
   Inherits System.Windows.Forms.Form
   Private statusBar1 As StatusBar
   Private hwb1 As HardwareButton
   Private hwb4 As HardwareButton
   Public Sub New()
      ' Display OK button to close the application.
      Me.ControlBox = True
      Me.MinimizeBox = False
   End Sub
   Protected Overrides Sub Dispose(disposing As Boolean)
   End Sub
   Private Sub InitializeComponent()
      Me.statusBar1 = New System.Windows.Forms.StatusBar()
      Me.hwb1 = New Microsoft.WindowsCE.Forms.HardwareButton
      Me.hwb4 = New Microsoft.WindowsCE.Forms.HardwareButton
      ' statusBar1
      Me.statusBar1.Location = New System.Drawing.Point(0, 246)
      Me.statusBar1.Name = "statusBar1"
      Me.statusBar1.Size = New System.Drawing.Size(240, 22)
      ' Form1
      Me.ClientSize = New System.Drawing.Size(240, 268)
      Me.Name = "Form1"
      Me.Text = "HW Button Test"
      statusBar1.Text = "From another app, press button 1 or 4."
   End Sub
   Shared Sub Main()
      Application.Run(New Form1())
   End Sub
   Private Sub ConfigHWButton()
      'Set KeyPreview to true so that the form 
      'will receive key events before they 
      'are passed to the control that has focus. 

       Me.KeyPreview = True

         hwb1 = New HardwareButton()
         hwb4 = New HardwareButton()

      'Set the AssociatedControl property
      'to the current form and configure the
      'first and fourth buttons to activate the form.
         hwb1.AssociatedControl = Me
         hwb4.AssociatedControl = Me
         hwb1.HardwareKey = HardwareKeys.ApplicationKey1
         hwb4.HardwareKey = HardwareKeys.ApplicationKey4
      Catch exc As Exception
         MsgBox(exc.Message + " Check if the hardware button is physically available on this device.")
      End Try
    End Sub
   Private Overloads Sub OnKeyUp(sender As Object, e As KeyEventArgs) Handles MyBase.KeyUp
       ' 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.
       Select Case CType(e.KeyCode, HardwareKeys)
         Case HardwareKeys.ApplicationKey1
            statusBar1.Text = "Button 1 pressed."
         Case HardwareKeys.ApplicationKey4
            statusBar1.Text = "Button 4 pressed."
         Case Else
      End Select
   End Sub
End Class 


Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows Mobile for Pocket PC

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Compact Framework

Supported in: 2.0

Community Additions