HardwareButton Class
Assembly: Microsoft.WindowsCE.Forms (in microsoft.windowsce.forms.dll)
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() InitializeComponent() ' Display OK button to close the application. Me.ControlBox = True Me.MinimizeBox = False ConfigHWButton() End Sub Protected Overrides Sub Dispose(disposing As Boolean) MyBase.Dispose(disposing) 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 Me.SuspendLayout() ' ' 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.Controls.Add(statusBar1) Me.Name = "Form1" Me.Text = "HW Button Test" Me.ResumeLayout(False) 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. Try 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
System.MarshalByRefObject
System.ComponentModel.Component
Microsoft.WindowsCE.Forms.HardwareButton
Windows Mobile for Pocket PC
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.