HardwareButton, classe
Mise à jour : novembre 2007
Autorise la substitution de la fonctionnalité des boutons matériels Pocket PC.
Espace de noms : Microsoft.WindowsCE.Forms
Assembly : Microsoft.WindowsCE.Forms (dans Microsoft.WindowsCE.Forms.dll)
Syntaxe
'Déclaration
Public Class HardwareButton _
Inherits Component
'Utilisation
Dim instance As HardwareButton
public class HardwareButton : Component
public ref class HardwareButton : public Component
public class HardwareButton extends Component
Notes
Vous pouvez configurer un bouton sur un Pocket PC pour activer Form, Panel ou un contrôle personnalisé dans votre application en procédant comme suit :
Créez une instance de HardwareButton.
Affectez le formulaire ou le contrôle que vous souhaitez activer à la propriété AssociatedControl.
Affectez l'une des valeurs de l'énumération HardwareKeys à la propriété HardwareKey. Vous pouvez configurer jusqu'à six boutons matériels.
Lorsqu'un bouton matériel est associé à un contrôle, celui-ci reçoit un événement KeyDown lorsque le bouton est enfoncé et un événement KeyUp lorsque le bouton est relâché.
Pour retourner un bouton matériel à son état d'origine, affectez à la propriété AssociatedControl la valeur nullune référence null (Nothing en Visual Basic).
Notez que le nombre de boutons matériel au-delà de ces six boutons peut être différent sur certains Pocket PC. Par ailleurs, tous les boutons ne sont pris en charge par le système d'exploitation. Windows Mobile 2003 pour Pocket PC prend en charge quatre boutons, contre cinq pour Windows Mobile version 5.0 pour Pocket PC.
Cette classe n'est pas prise en charge sur Smartphone ni sur d'autres périphériques Windows CE qui ne sont pas des Pocket PC.
Exemples
L'exemple de code suivant montre comment activer un formulaire à l'aide du premier et du quatrième boutons matériels d'un 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
MessageBox.Show(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
using System;
using System.Drawing;
using System.Collections;
using System.Windows.Forms;
using Microsoft.WindowsCE.Forms;
namespace HardwareButtonTest
{
public class Form1 : System.Windows.Forms.Form
{
private StatusBar statusBar1;
private HardwareButton hwb1, hwb4;
public Form1()
{
InitializeComponent();
// Display OK button to close the application.
this.ControlBox = true;
this.MinimizeBox = false;
// Create event-handler delegate for the KeyUp
// event for this form. This form is associated
// with each of the hardware buttons, and the
// event occurs when a hardware button is pressed.
// Note that you could also use the KeyDown event
// instead of the KeyUp event.
this.KeyPreview = true;
this.KeyUp += new KeyEventHandler(this.OnKeyUp);
// Call the method to configure
// the hardware button.
HBConfig();
}
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
}
private void InitializeComponent()
{
this.statusBar1 = new System.Windows.Forms.StatusBar();
this.SuspendLayout();
//
// statusBar1
//
this.statusBar1.Location = new System.Drawing.Point(0, 246);
this.statusBar1.Name = "statusBar1";
this.statusBar1.Size = new System.Drawing.Size(240, 22);
//
// Form1
//
this.ClientSize = new System.Drawing.Size(240, 268);
this.Controls.Add(this.statusBar1);
this.Name = "Form1";
this.Text = "HW Button Test";
this.ResumeLayout(false);
statusBar1.Text = "Press hardware button 1 or 4.";
}
static void Main()
{
Application.Run(new Form1());
}
// Configure hardware buttons
// 1 and 4 to activate the current form.
private void HBConfig()
{
try
{
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.";
break;
case HardwareKeys.ApplicationKey4:
statusBar1.Text = "Button 4 pressed.";
break;
default:
break;
}
}
}
}
Hiérarchie d'héritage
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
Microsoft.WindowsCE.Forms.HardwareButton
Sécurité des threads
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Plateformes
Windows Mobile pour Pocket PC
Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Informations de version
.NET Compact Framework
Pris en charge dans : 3.5, 2.0
Voir aussi
Référence
Microsoft.WindowsCE.Forms, espace de noms