Share via


HardwareButton クラス

[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 空白のトピックは、プレースホルダーとして挿入されています。]

Pocket PC のハードウェア ボタンの機能をオーバーライドできるようにします。

名前空間:  Microsoft.WindowsCE.Forms
アセンブリ:  Microsoft.WindowsCE.Forms (Microsoft.WindowsCE.Forms.dll 内)

構文

'宣言
Public Class HardwareButton _
    Inherits Component
'使用
Dim instance As HardwareButton
public class HardwareButton : Component
public ref class HardwareButton : public Component
type HardwareButton =  
    class
        inherit Component
    end

解説

以下を実行することによって、アプリケーションで FormPanel、またはカスタム コントロールをアクティブにするように、Pocket PC のボタンを設定できます。

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

  • AssociatedControl プロパティに、アクティブにするフォームまたはコントロールを設定します。

  • HardwareKey プロパティに HardwareKeys 列挙値のいずれかを設定します。最大 6 個のハードウェア ボタンを設定できます。

ハードウェア ボタンをコントロールに関連付けると、そのコントロールは、ボタンが押されたときには KeyDown イベントを受け取り、ボタンが離されたときには KeyUp イベントを受け取ります。

ハードウェア ボタンを元の状態に戻すには、AssociatedControl プロパティを nullnull 参照 (Visual Basic では Nothing) に設定します。

Pocket PC の中には、ハードウェア ボタンの数が 6 個ではないものもあります。また、オペレーティング システムによってすべてのボタンがサポートされているわけではありません。Windows Mobile 2003 for Pocket PC では 4 個のボタンが、Windows Mobile Version 5.0 software for Pocket PC では 5 個のボタンがサポートされています。

注意

ハードウェア ボタンは、Pocket PC でアプリケーション キーに対応します。アプリケーション キーはへ 1 つのキーボード レイアウトからによって異なりますがハードウェア キー マッピングのため、コア キー セットに含まれません。のみ既定のハードウェア キー マッピング デバイスではサポートされています。

このクラスは、Smartphone および Pocket PC 以外の Windows CE デバイスではサポートされていません。

Pocket PC の 1 つ目と 4 つ目のハードウェア ボタンを使用して、フォームをアクティブにする方法を次のコード例に示します。

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


PublicClass Form1
   Inherits System.Windows.Forms.Form
   Private statusBar1 As StatusBar
   Private hwb1 As HardwareButton
   Private hwb4 As HardwareButton


   PublicSubNew()

      InitializeComponent()

      ' Display OK button to close the application.Me.ControlBox = TrueMe.MinimizeBox = False

      ConfigHWButton()


   EndSubProtectedOverridesSub Dispose(disposing AsBoolean)
      MyBase.Dispose(disposing)
   EndSubPrivateSub 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."EndSubSharedSub Main()
      Application.Run(New Form1())
   EndSubPrivateSub 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.")
      EndTryEndSubPrivateOverloadsSub OnKeyUp(sender AsObject, e As KeyEventArgs) HandlesMyBase.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.SelectCaseCType(e.KeyCode, HardwareKeys)
         Case HardwareKeys.ApplicationKey1
            statusBar1.Text = "Button 1 pressed."Case HardwareKeys.ApplicationKey4
            statusBar1.Text = "Button 4 pressed."CaseElseEndSelectEndSubEndClass
using System;
using System.Drawing;
using System.Collections;
using System.Windows.Forms;
using Microsoft.WindowsCE.Forms;

namespace HardwareButtonTest
{
    publicclass 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();
        }

        protectedoverridevoid Dispose(bool disposing)
        {
            base.Dispose(disposing);
        }
        privatevoid 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.";

        }

        staticvoid Main()
        {
            Application.Run(new Form1());
        }


        // Configure hardware buttons// 1 and 4 to activate the current form.privatevoid 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.privatevoid 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;
            }
        }
    }
}

継承階層

System.Object
  System.MarshalByRefObject
    System.ComponentModel.Component
      Microsoft.WindowsCE.Forms.HardwareButton

スレッド セーフ

この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。 インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

プラットフォーム

Windows Mobile for Pocket PC

.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。 サポートされているバージョンについては、「.NET フレームワークのシステム要件」を参照してください。

バージョン情報

.NET Compact Framework

サポート対象 : 3.5、2.0

参照

参照

HardwareButton メンバー

Microsoft.WindowsCE.Forms 名前空間

その他の技術情報

方法 : HardwareButton コンポーネントを使用します。