Share via


方法 : Smartphone のメニューを使用します。

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

Smartphone のユーザー インターフェイスに従う、.NET Compact Framework は、次のメニューの [制限を適用します。

  • 2 つのトップレベルのメニュー項目だけ配置できます。

  • のみ、2 番目トップレベル メニュー項目、フォームの右側にあることがサブメニューできます。

.NET Compact Framework は、デザイン時にこれらの制限を強制しませんが、コードが従っていません場合は、NotSupportedException 実行時にスローはこと注意ください。

実行時に、トップレベル メニュー項目を削除できません。 ただし、空の文字列に、EnabledMenuItem プロパティできる設定 ("")、メニュー項目の表示、非表示にします。

Visual Studio は、フォームに MainMenu コンポーネントを自動的に追加します Smartphone および Pocket PC アプリケーションを作成したが、子フォームに追加されない場合します。 MainMenu コンポーネント、Smartphone のソフト キーの動作が MainMenu コンポーネント、フォームから削除しない限りその機能をプログラムすることはできません。 ソフト キーのプログラミングについてを使用して Smartphone 戻るキーとソフト キーを参照してください。

メニューの [選択したメソッドを関連付けるするにはの ClickMenuItem イベントのコードを用意します。

使用例

例は、マップを選択するシナリオのメニュー システムを定義します。

  • 左側にはイベントを表示するメッセージ ボックスを表示するコードを処理している Map Help メニュー項目、です。

  • 右側の 2 つの子を持っている Maps メニュー項目は。My Maps および Add and Remove これらの子をある、それぞれ、独自の 5 つや 2 つの子です。

                        Imports System
Imports System.Windows.Forms

PublicClass Form1
    Inherits System.Windows.Forms.Form
    FriendWithEvents MainMenu1 As System.Windows.Forms.MainMenu
    PrivateWithEvents mi1 AsNew MenuItem
    Private mi2 AsNew MenuItem
    Private miChildA AsNew MenuItem
    Private miChildB AsNew MenuItem
    PrivateWithEvents miGrandChildA1 AsNew MenuItem
    PrivateWithEvents miGrandChildA2 AsNew MenuItem
    PrivateWithEvents miGrandChildA3 AsNew MenuItem
    PrivateWithEvents miGrandChildA4 AsNew MenuItem
    PrivateWithEvents miGrandChildA5 AsNew MenuItem
    PrivateWithEvents miGrandChildB1 AsNew MenuItem
    PrivateWithEvents miGrandChildB2 AsNew MenuItem

    PublicSubNew()
        MyBase.New()

        InitializeComponent()

        'Define and add menu items.
        MainMenu1.MenuItems.Add(mi1)
        MainMenu1.MenuItems.Add(mi2)
        mi2.MenuItems.Add(miChildA)
        mi2.MenuItems.Add(miChildB)
        miChildA.MenuItems.Add(miGrandChildA1)
        miChildA.MenuItems.Add(miGrandChildA2)
        miChildA.MenuItems.Add(miGrandChildA3)
        miChildA.MenuItems.Add(miGrandChildA4)
        miChildA.MenuItems.Add(miGrandChildA5)
        miChildB.MenuItems.Add(miGrandChildB1)
        miChildB.MenuItems.Add(miGrandChildB2)
        mi1.Text = "Map Help"
        mi2.Text = "Maps"
        miChildA.Text = "My Maps"
        miChildB.Text = "Add and remove"
        miGrandChildA1.Text = "Manhattan"
        miGrandChildA2.Text = "Bronx"
        miGrandChildA3.Text = "Brooklyn"
        miGrandChildA4.Text = "Queens"
        miGrandChildA5.Text = "Staten Island"
        miGrandChildB1.Text = "Add map"
        miGrandChildB2.Text = "Delete map"EndSubPublicSharedSub Main()
        Application.Run(New Form1)
    EndSub
    'Form overrides dispose to clean up the component list.ProtectedOverloadsOverridesSub Dispose(ByVal disposing AsBoolean)
        MyBase.Dispose(disposing)
    EndSubPrivateSub InitializeComponent()
        Me.MainMenu1 = New System.Windows.Forms.MainMenu()
        Me.Menu = Me.MainMenu1
        Me.Text = "Form1"EndSub
    ' The following subroutine handles the     ' Click event for the mi1 MenuItem.PrivateSub mi1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mi1.Click
        MessageBox.Show("This is just a test.")
    EndSubEndClass
                        using System;
using System.Windows.Forms;

namespace SmartphoneMenus
{
    publicclass Form1 : System.Windows.Forms.Form
    {
        private System.Windows.Forms.MainMenu mainMenu1;

        private MenuItem mi1 = new MenuItem();
        private MenuItem mi2 = new MenuItem();
        private MenuItem miChildA = new MenuItem();
        private MenuItem miChildB = new MenuItem();
        private MenuItem miGrandChildA1 = new MenuItem();
        private MenuItem miGrandChildA2 = new MenuItem();
        private MenuItem miGrandChildA3 = new MenuItem();
        private MenuItem miGrandChildA4 = new MenuItem();
        private MenuItem miGrandChildA5 = new MenuItem();
        private MenuItem miGrandChildB1 = new MenuItem();
        private MenuItem miGrandChildB2 = new MenuItem();

        public Form1()
        {
            InitializeComponent();


            mainMenu1.MenuItems.Add(mi1);
            mainMenu1.MenuItems.Add(mi2);
            mi2.MenuItems.Add(miChildA);
            mi2.MenuItems.Add(miChildB);
            miChildA.MenuItems.Add(miGrandChildA1);
            miChildA.MenuItems.Add(miGrandChildA2);
            miChildA.MenuItems.Add(miGrandChildA3);
            miChildA.MenuItems.Add(miGrandChildA4);
            miChildA.MenuItems.Add(miGrandChildA5);
            miChildB.MenuItems.Add(miGrandChildB1);
            miChildB.MenuItems.Add(miGrandChildB2);

            // Event handler for the top left menu.
            mi1.Click +=new EventHandler(mi1_Click);

           // Event handlers for grandchild menu items. This code is commented out// because this example does not define their event handling methods.// miGrandChildA1.Click +=new EventHandler(miGrandChildA1_Click);// miGrandChildB1.Click +=new EventHandler(miGrandChildB1_Click);// miGrandChildB2.Click +=new EventHandler(miGrandChildB2_Click);
            mi1.Text = "Map Help";
            mi2.Text = "Maps";
            miChildA.Text = "My Maps";
            miChildB.Text = "Add and remove";
            miGrandChildA1.Text = "Manhattan";
            miGrandChildA2.Text = "Bronx";
            miGrandChildA3.Text = "Brooklyn";
            miGrandChildA4.Text = "Queens";
            miGrandChildA5.Text = "Staten Island";
            miGrandChildB1.Text = "Add map";
            miGrandChildB2.Text = "Remove map";

        }
        protectedoverridevoid Dispose( bool disposing )
        {
            base.Dispose( disposing );
        }

        privatevoid InitializeComponent()
        {
            this.mainMenu1 = new System.Windows.Forms.MainMenu();
            this.Menu = this.mainMenu1;
            this.Text = "Form1";

        }

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

        // The following method handles the// Click event for the mi1 MenuItem.privatevoid mi1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("This is just a test.");
        }
    }
}

コードのコンパイル方法

この例では、次の名前空間への参照が必要です。

参照

その他の技術情報

Smartphone の開発と、.NET Framework を最適化します。