方法 : HardwareButton コンポーネントを使用する

更新 : 2007 年 11 月

Form をアクティブにするように、Pocket PC のハードウェア ボタンを設定できます。この例では、1 番目と 4 番目のハードウェア ボタンを使用してアプリケーションをアクティブにし、押されたボタンをステータス バーに表示します。

フォームをアクティブにするようにハードウェア ボタンを設定するには

  1. Pocket PC Windows アプリケーションを作成します。

  2. HardwareButton のインスタンスを作成します。

  3. AssociatedControl プロパティにフォームを設定します。

  4. HardwareKey プロパティを HardwareKeys 列挙体で定義されたアプリケーション キーに設定します。

  5. 使用する他のハードウェア ボタンに対して、手順 2 ~ 4 を繰り返します。

  6. ハードウェア ボタンが押されて離されると、フォームは KeyDownKeyUp の両方のイベントを受け取ります。どちらのイベントを使用しても、ハードウェア ボタンが押されたかどうかを判断できます。

使用例

この例では、1 番目と 4 番目のハードウェア ボタンを設定して、フォームをアクティブにします。デモを行うには、次の手順に従います。

  1. アプリケーションを実行します。

  2. デバイスで別のアプリケーションを開きます。

  3. ハードウェア ボタンの 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;
    }
}

コードのコンパイル方法

この例は、次の名前空間への参照を必要とします。

参照

参照

HardwareButton

その他の技術情報

Pocket PC の開発と .NET Compact Framework