方法 : HardwareButton コンポーネントを使用する
更新 : 2007 年 11 月
Form をアクティブにするように、Pocket PC のハードウェア ボタンを設定できます。この例では、1 番目と 4 番目のハードウェア ボタンを使用してアプリケーションをアクティブにし、押されたボタンをステータス バーに表示します。
フォームをアクティブにするようにハードウェア ボタンを設定するには
Pocket PC Windows アプリケーションを作成します。
HardwareButton のインスタンスを作成します。
AssociatedControl プロパティにフォームを設定します。
HardwareKey プロパティを HardwareKeys 列挙体で定義されたアプリケーション キーに設定します。
使用する他のハードウェア ボタンに対して、手順 2 ~ 4 を繰り返します。
ハードウェア ボタンが押されて離されると、フォームは KeyDown と KeyUp の両方のイベントを受け取ります。どちらのイベントを使用しても、ハードウェア ボタンが押されたかどうかを判断できます。
使用例
この例では、1 番目と 4 番目のハードウェア ボタンを設定して、フォームをアクティブにします。デモを行うには、次の手順に従います。
アプリケーションを実行します。
デバイスで別のアプリケーションを開きます。
ハードウェア ボタンの 1 または 4 を押して、このアプリケーションのフォームをアクティブにします。ステータス バーに、どのハードウェア ボタンが押されたかが示されます。
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
// 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;
}
}
コードのコンパイル方法
この例は、次の名前空間への参照を必要とします。