MenuItem クラスとは? わかりやすく解説

MenuItem クラス

メモ : このクラスは、.NET Framework version 2.0新しく追加されたものです。

Menu コントロール表示されるメニュー項目を表します。このクラス継承できません。

名前空間: System.Web.UI.WebControls
アセンブリ: System.Web (system.web.dll 内)
構文構文

Public NotInheritable Class
 MenuItem
    Implements IStateManager, ICloneable
public sealed class MenuItem : IStateManager,
 ICloneable
public ref class MenuItem sealed : IStateManager,
 ICloneable
public final class MenuItem implements IStateManager,
 ICloneable
public final class MenuItem implements IStateManager,
 ICloneable
解説解説

Menu コントロールは、MenuItem オブジェクトによって表されるメニュー項目の階層構成されます。メニュー項目には、Menu コントロール内でのそのメニュー項目の表示レベル指定する読み取り専用Depth プロパティあります。親メニュー項目を持たない最上位 (レベル 0) のメニュー項目をルート メニュー項目と呼びます。親メニュー項目を持つメニュー項目をサブメニュー項目と呼びますすべてのルート メニュー項目は Items コレクション格納されます。サブメニュー項目は、親メニュー項目の ChildItems コレクション格納されます。メニュー項目の親メニュー項目には、Parent プロパティ使用してアクセスできます

メモメモ

Items コレクションChildItems コレクションには、1 つ下のレベルメニュー項目だけ含まれます。メニュー ツリーのさらに下のメニュー項目にアクセスするには、後続メニュー項目の ChildItems プロパティ使用します

Menu コントロールメニュー項目を作成するには、次のいずれかメソッド使用します

宣言構文使用して静的メニュー項目を作成します

コンストラクタ使用してMenuItem クラス新しインスタンス動的に作成します後で、これらの MenuItem オブジェクトItems コレクションまたは ChildItems コレクション追加できます

Menu コントロールデータ ソースバインドます。Menu コントロールが SiteMapDataSource コントロールバインドされると、データ ソース内の項目に対応する MenuItem オブジェクト自動的に作成されます。他のデータ ソースについても、データ ソース階層構造一致する MenuItem オブジェクト自動的に作成されます。ただし DataBindings コレクション使用してメニュー項目のバインディング定義しメニュー項目とそれに対応するデータ項目の間のバインディング関係を指定することも必要です。

メニュー項目はそのレベルに従って静的メニューまたは動的メニューどちらか表示されます。静的メニューは常に Menu コントロール表示されます。既定では、最上位 (レベル 0) のメニュー項目は静的メニュー表示されます。StaticDisplayLevels プロパティ設定して静的メニューメニュー レベル (静的サブメニュー) を追加表示できますStaticDisplayLevels プロパティ指定されている値よりも高いレベルメニュー項目がある場合、それは動的なサブメニューに表示されます。動的なサブメニューは、動的なサブメニューを持つ親メニュー項目の上ユーザーマウス ポインタ置いた場合にのみ表示されます。

ユーザーメニュー項目をクリックすると、Menu コントロールリンクされWeb ページナビゲートするか、単純にサーバーポストバックます。メニュー項目の NavigateUrl プロパティ設定されている場合Menu コントロールリンクされページナビゲートます。それ以外場合は、処理を行うためにページサーバーポストバックます。既定では、リンクされページMenu コントロールと同じウィンドウまたは表示されます。リンクされコンテンツ別のウィンドウまたは表示するには、Menu コントロールTarget プロパティ使用します

メニュー項目ごとに TextValue プロパティありますメニュー項目に関連付けられているポストバック イベント渡されるデータなど、メニュー項目に関する補足データ格納するために Value プロパティ使用されている間、Text プロパティの値は Menu コントロール表示されます。Text プロパティ設定しValue プロパティ設定しないと、Value プロパティには Text プロパティと同じ値が自動的に設定されます。その反対も同様ですValue プロパティ設定しText プロパティ設定しないと、Text プロパティには Value プロパティと同じ値が自動的に設定されます。

メモメモ

同じメニュー レベルにあるメニュー項目は、それぞれの Value プロパティの値が一意であることが必要です。同一レベル複数メニュー項目でこの値が同じであると、Menu コントロールは各メニュー項目を区別できません。この場合重複した値を持つメニュー項目をユーザークリックすると、最初にメニュー表示されているメニュー項目が選択されます。

ユーザーマウス ポインタメニュー項目の上置いたときにツールヒント表示するには、その項目の ToolTip プロパティ設定します

Menu コントロールには、さまざまな種類メニュー項目があります次の表に示すプロパティ使用してメニュー項目の種類ごとにフォント サイズや色などのスタイル制御できます

メニュー項目のスタイルプロパティ

説明

DynamicHoverStyle

マウス ポインタが上に置かれたときに表示される動的メニュー項目のスタイル設定

DynamicMenuItemStyle

個々動的メニュー項目のスタイル設定

DynamicMenuStyle

動的メニュースタイル設定

DynamicSelectedStyle

現在選択されている動的メニュー項目のスタイル設定

StaticHoverStyle

マウス ポインタが上に置かれたときに表示される静的メニュー項目のスタイル設定

StaticMenuItemStyle

個々静的メニュー項目のスタイル設定

StaticMenuStyle

静的メニュースタイル設定

StaticSelectedStyle

現在選択されている静的メニュー項目のスタイル設定

スタイルプロパティ個々設定する代わりに次の表に示すスタイル コレクション使用してレベル基づいてメニュー項目に適用するスタイル指定できます

このコレクションの中の最初スタイルは、メニュー ツリーの 1 番目の深さレベルにあるメニュー項目のスタイル対応します。このコレクションの中の 2 番目のスタイルは、メニュー ツリー2 番目の深さレベルにあるメニュー項目のスタイル対応し、以下同様に対応します。サブメニューの有無かかわらず一定の深さレベルにあるメニュー項目の外観同じにする場合は、この方法でコンテンツ-スタイルナビゲーション メニューテーブル生成するのが最も一般的です。

メニュー項目のスタイルだけでなく、その外観カスタマイズできます次の表に示すプロパティ設定してメニュー項目の部分ごとにカスタム イメージ指定できます

イメージプロパティ

説明

ImageUrl

メニュー項目のテキストの横に表示される省略可能なイメージ

PopOutImageUrl

メニュー項目に動的なサブメニューがあることを示すためにメニュー項目に表示される省略可能なイメージ

SeparatorImageUrl

他のメニュー項目と区別するためにメニュー目の下部に表示される省略可能なイメージ

Menu コントロールメニュー項目が現在選択されているかどうか確認するには、Selected プロパティ使用します。DataBound プロパティ使用してメニュー項目がデータバインドされているかどうか確認することもできますメニュー項目がデータバインドされている場合は、DataItem プロパティ使用してメニュー項目にバインドされたデータ項目の値にアクセスできます

MenuItem クラスインスタンス初期プロパティ値の一覧については、MenuItem コンストラクタトピック参照してください

使用例使用例

宣言構文使用して静的MenuItem オブジェクトMenu コントロール作成する方法コード例次に示します

<%@ Page Language="VB" %>

<html>
  <body>
    <form runat="server">
    
      <h3>MenuItem Declarative Example</h3>
    
      <!-- Use declarative syntax to create the   -->
      <!-- menu structure. Create submenu items   -->
      <!-- by nesting them within parent menu     -->
      <!-- items.                                 -->
      <asp:menu id="NavigationMenu"
        staticdisplaylevels="1"
        staticsubmenuindent="10" 
        orientation="Vertical" 
        target="_blank"  
        runat="server">

        <items>
          <asp:menuitem navigateurl="Home.aspx"
 
            text="Home"
            imageurl="Images\Home.gif"
            popoutimageurl="Images\Popout.jpg"   
            tooltip="Home">
            <asp:menuitem navigateurl="Music.aspx"
              text="Music"
              popoutimageurl="Images\Popout.jpg"
              tooltip="Music">
              <asp:menuitem navigateurl="Classical.aspx"
 
                text="Classical"
                separatorimageurl="Images\Separator.jpg"
                tooltip="Classical"/>
              <asp:menuitem navigateurl="Rock.aspx"
                text="Rock"
                separatorimageurl="Images\Separator.jpg"
                tooltip="Rock"/>
              <asp:menuitem navigateurl="Jazz.aspx"
                text="Jazz"
                separatorimageurl="Images\Separator.jpg"
                tooltip="Jazz"/>
            </asp:menuitem>
            <asp:menuitem navigateurl="Movies.aspx"
              text="Movies"
              popoutimageurl="Images\Popout.jpg"              
              tooltip="Movies">
              <asp:menuitem navigateurl="Action.aspx"
                text="Action"
                separatorimageurl="Images\Separator.jpg"
                tooltip="Action"/>
              <asp:menuitem navigateurl="Drama.aspx"
                text="Drama"
                separatorimageurl="Images\Separator.jpg"
                tooltip="Drama"/>
              <asp:menuitem navigateurl="Musical.aspx"
                text="Musical"
                separatorimageurl="Images\Separator.jpg"
                tooltip="Musical"/>
            </asp:menuitem>
          </asp:menuitem>
        </items>
      
      </asp:menu>

    </form>
  </body>
</html>

<%@ Page Language="C#" %>

<html>
  <body>
    <form runat="server">
    
      <h3>MenuItem Declarative Example</h3>
    
      <!-- Use declarative syntax to create the   -->
      <!-- menu structure. Create submenu items   -->
      <!-- by nesting them within parent menu     -->
      <!-- items.                                 -->
      <asp:menu id="NavigationMenu"
        staticdisplaylevels="1"
        staticsubmenuindent="10" 
        orientation="Vertical" 
        target="_blank"  
        runat="server">

        <items>
          <asp:menuitem navigateurl="Home.aspx" 
            text="Home"
            imageurl="Images\Home.gif"
            popoutimageurl="Images\Popout.jpg"   
            tooltip="Home">
            <asp:menuitem navigateurl="Music.aspx"
              text="Music"
              popoutimageurl="Images\Popout.jpg"
              tooltip="Music">
              <asp:menuitem navigateurl="Classical.aspx" 
                text="Classical"
                separatorimageurl="Images\Separator.jpg"
                tooltip="Classical"/>
              <asp:menuitem navigateurl="Rock.aspx"
                text="Rock"
                separatorimageurl="Images\Separator.jpg"
                tooltip="Rock"/>
              <asp:menuitem navigateurl="Jazz.aspx"
                text="Jazz"
                separatorimageurl="Images\Separator.jpg"
                tooltip="Jazz"/>
            </asp:menuitem>
            <asp:menuitem navigateurl="Movies.aspx"
              text="Movies"
              popoutimageurl="Images\Popout.jpg"              
              tooltip="Movies">
              <asp:menuitem navigateurl="Action.aspx"
                text="Action"
                separatorimageurl="Images\Separator.jpg"
                tooltip="Action"/>
              <asp:menuitem navigateurl="Drama.aspx"
                text="Drama"
                separatorimageurl="Images\Separator.jpg"
                tooltip="Drama"/>
              <asp:menuitem navigateurl="Musical.aspx"
                text="Musical"
                separatorimageurl="Images\Separator.jpg"
                tooltip="Musical"/>
            </asp:menuitem>
          </asp:menuitem>
        </items>
      
      </asp:menu>

    </form>
  </body>
</html>

Menu コントロールSiteMapDataSource コントロールバインドする方法コード例次に示しますMenu コントロールデータ ソースバインドされると、MenuItem オブジェクト自動的に作成します。この例を正常に動作させるには、以下のサンプル サイト マップ データを、Web.sitemap という名前のファイルコピーする必要があります

<%@ Page Language="VB" %>

<html>

  <!-- For the hover styles of the Menu
 control to  -->
  <!-- work correctly, you must include this head   -->
  <!-- element.                                     -->
  <head runat="server">
  </head>

  <body>
    <form runat="server">
    
      <h3>Menu DataBinding Example</h3>
    
      <!-- Bind the Menu control to a SiteMapDataSource control.
  -->
      <asp:menu id="NavigationMenu"
        disappearafter="2000"
        staticdisplaylevels="2"
        staticsubmenuindent="10" 
        orientation="Vertical"
        font-names="Arial" 
        target="_blank"
        datasourceid="MenuSource"   
        runat="server">
        
        <staticmenuitemstyle backcolor="LightSteelBlue"
          forecolor="Black"/>
        <statichoverstyle backcolor="LightSkyBlue"/>
        <dynamicmenuitemstyle backcolor="Black"
          forecolor="Silver"/>
        <dynamichoverstyle backcolor="LightSkyBlue"
          forecolor="Black"/>

      </asp:menu>
      
      <asp:SiteMapDataSource id="MenuSource"
        runat="server"/>        

    </form>
  </body>
</html>

<%@ Page Language="C#" %>

<html>

  <!-- For the hover styles of the Menu control to  -->
  <!-- work correctly, you must include this head   -->
  <!-- element.                                     -->
  <head runat="server">
  </head>

  <body>
    <form runat="server">
    
      <h3>Menu DataBinding Example</h3>
    
      <!-- Bind the Menu control to a SiteMapDataSource control.  -->
      <asp:menu id="NavigationMenu"
        disappearafter="2000"
        staticdisplaylevels="2"
        staticsubmenuindent="10" 
        orientation="Vertical"
        font-names="Arial" 
        target="_blank"
        datasourceid="MenuSource"   
        runat="server">
        
        <staticmenuitemstyle backcolor="LightSteelBlue"
          forecolor="Black"/>
        <statichoverstyle backcolor="LightSkyBlue"/>
        <dynamicmenuitemstyle backcolor="Black"
          forecolor="Silver"/>
        <dynamichoverstyle backcolor="LightSkyBlue"
          forecolor="Black"/>

      </asp:menu>
      
      <asp:SiteMapDataSource id="MenuSource"
        runat="server"/>        

    </form>
  </body>
</html>

前の例のサンプル サイト マップ データ次に示します

<siteMap>

<siteMapNode url="~\Home.aspx"

title="Home"

description="Home">

<siteMapNode url="~\Music.aspx"

title="Music"

description="Music">

<siteMapNode url="~\Classical.aspx"

title="Classical"

description="Classical"/>

<siteMapNode url="~\Rock.aspx"

title="Rock"

description="Rock"/>

<siteMapNode url="~\Jazz.aspx"

title="Jazz"

description="Jazz"/>

</siteMapNode>

<siteMapNode url="~\Movies.aspx"

title="Movies"

description="Movies">

<siteMapNode url="~\Action.aspx"

title="Action"

description="Action"/>

<siteMapNode url="~\Drama.aspx"

title="Drama"

description="Drama"/>

<siteMapNode url="~\Musical.aspx"

title="Musical"

description="Musical"/>

</siteMapNode>

</siteMapNode>

</siteMap>

.NET Framework のセキュリティ.NET Frameworkセキュリティ
継承階層継承階層
System.Object
  System.Web.UI.WebControls.MenuItem
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
MenuItem メンバ
System.Web.UI.WebControls 名前空間
Menu クラス
MenuItemBinding
MenuItemCollection
MenuItemStyle
ChildItems
ImageUrl
Menu.Items プロパティ
NavigateUrl
PopOutImageUrl
SeparatorImageUrl
Menu.Target プロパティ
Target
Text
ToolTip
Value

MenuItem クラス

MainMenu または ContextMenu 内に表示される個別の項目を表します。ToolStripMenuItem は以前のバージョンMenuItem コントロール機能置換または追加しますが、選択により、下位互換性および将来使用のために MenuItem保持することもできます

名前空間: System.Windows.Forms
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)
構文構文

解説解説

MenuItem表示するには、MainMenu または ContextMenu追加する必要があります。サブメニューを作成するには、MenuItem オブジェクトを親 MenuItem の MenuItems プロパティ追加します

MenuItem クラスには、メニュー項目の外観と機能設定するためのプロパティありますメニュー項目の横にチェック マーク表示するには、Checked プロパティ使用します。この機能使用すると、一度1 つしか選択できない複数メニュー項目の中で、選択されている 1 つメニュー項目を識別できます。たとえば、TextBox コントロールテキストの色を設定するメニュー項目が複数ある場合Checked プロパティ使用して、現在選択されている色を識別できますShortcut プロパティ使用すると、組み合わせて押すことによってメニュー項目を選択できるショートカット キーを定義できます

マルチ ドキュメント インターフェイス (MDI: Multiple Document Interface) アプリケーション表示される MenuItem オブジェクト場合、MergeMenu メソッド使用してMDI 親のメニューと、その子フォームメニューマージし、統合したメニュー構造作成できますMenuItem は、複数の場所 (MainMenuContextMenu など) で同時に使用できないため、別の場所で使用する場合は、CloneMenu メソッド使用して MenuItemコピー作成できます

Popup イベント使用すると、メニュー表示する前にタスク実行できるようになります。たとえば、このイベント処理するイベント ハンドラ作成しコードの状態に基づいてメニュー項目を表示したり非表示にしたりできますSelect イベント使用すると、ユーザーアプリケーションメニュー目上マウス ポインタ置いたときに、その項目に関する詳しいヘルプ表示するなどのタスク実行できます

使用例使用例

フォーム使用するメニュー構造作成するコード例次に示します。この例では、トップレベル メニューの項目を表す MenuItem追加してフォント サイズ選択するためのサブメニュー項目を追加します。さらに、そのサブメニュー項目にアプリケーション大小フォント選択肢を表す 2 つのサブメニュー項目を追加します。この例では、mainMenu1 という名前の MainMenu オブジェクト、および menuItem1menuItem2menuItem3menuItem4 という名前の 4 つMenuItem オブジェクト作成されている必要があります

Public Sub CreateMyMenu()
    ' Set the caption for the top-level menu item.
    menuItem1.Text = "Edit"
    ' Set the caption for the first submenu.
    menuItem2.Text = "Font Size"
    ' Set the caption for menuItem2's first submenu.
    menuItem3.Text = "Small"
    ' Set the checked property to true since this is the default value.
    menuItem3.Checked = True
    ' Define a shortcut key combination for the menu item.
    menuItem3.Shortcut = Shortcut.CtrlS
    ' Set the caption of the second sub menu item of menuItem2.
    menuItem4.Text = "Large"
    ' Define a shortcut key combination for the menu item.
    menuItem4.Shortcut = Shortcut.CtrlL
    ' Set the index of the menu item so it is placed below the first
 submenu item.
    menuItem4.Index = 1
    ' Add menuItem3 and menuItem4 to menuItem2's list of menu items.
    menuItem2.MenuItems.Add(menuItem3)
    menuItem2.MenuItems.Add(menuItem4)
    ' Add menuItem2 to menuItem1's list of menu items.
    menuItem1.MenuItems.Add(menuItem2)
    ' Add menuItem1 to the MainMenu for displaying.
    mainMenu1.MenuItems.Add(menuItem1)
End Sub

public void CreateMyMenu()
    {
    // Set the caption for the top-level menu item.
    menuItem1.Text = "Edit";
    // Set the caption for the first submenu.
    menuItem2.Text = "Font Size";
    // Set the caption for menuItem2's first submenu.
    menuItem3.Text = "Small";
    // Set the checked property to true since this is the default value.
    menuItem3.Checked = true;
    // Define a shortcut key combination for the menu item.
    menuItem3.Shortcut = Shortcut.CtrlS;
    // Set the caption of the second sub menu item of menuItem2.
    menuItem4.Text = "Large";
    // Define a shortcut key combination for the menu item.
    menuItem4.Shortcut = Shortcut.CtrlL;
    // Set the index of the menu item so it is placed below the first
 submenu item.
    menuItem4.Index = 1;
    // Add menuItem3 and menuItem4 to menuItem2's list of menu items.
    menuItem2.MenuItems.Add(menuItem3);
    menuItem2.MenuItems.Add(menuItem4);
    // Add menuItem2 to menuItem1's list of menu items.
    menuItem1.MenuItems.Add(menuItem2);
    // Add menuItem1 to the MainMenu for displaying.
    mainMenu1.MenuItems.Add(menuItem1);
    }

public:
   void CreateMyMenu()
   {
      // Set the caption for the top-level menu item.
      menuItem1->Text = "Edit";
      // Set the caption for the first submenu.
      menuItem2->Text = "Font Size";
      // Set the caption for menuItem2's first submenu.
      menuItem3->Text = "Small";
      // Set the checked property to true since this is the default
 value.
      menuItem3->Checked = true;
      // Define a shortcut key combination for the menu item.
      menuItem3->Shortcut = Shortcut::CtrlS;
      // Set the caption of the second sub menu item of menuItem2.
      menuItem4->Text = "Large";
      // Define a shortcut key combination for the menu item.
      menuItem4->Shortcut = Shortcut::CtrlL;
      // Set the index of the menu item so it is placed below the first
 submenu item.
      menuItem4->Index = 1;
      // Add menuItem3 and menuItem4 to menuItem2's list of menu items.
      menuItem2->MenuItems->Add( menuItem3 );
      menuItem2->MenuItems->Add( menuItem4 );
      // Add menuItem2 to menuItem1's list of menu items.
      menuItem1->MenuItems->Add( menuItem2 );
      // Add menuItem1 to the MainMenu for displaying.
      mainMenu1->MenuItems->Add( menuItem1 );
   }
public void CreateMyMenu()
{
    // Set the caption for the top-level menu item.
    menuItem1.set_Text("Edit");

    // Set the caption for the first submenu.
    menuItem2.set_Text("Font Size");

    // Set the caption for menuItem2's first submenu.
    menuItem3.set_Text("Small");

    // Set the checked property to true since this is the default value.
    menuItem3.set_Checked(true);

    // Define a shortcut key combination for the menu item.
    menuItem3.set_Shortcut(Shortcut.CtrlS);

    // Set the caption of the second sub menu item of menuItem2.
    menuItem4.set_Text("Large");

    // Define a shortcut key combination for the menu item.
    menuItem4.set_Shortcut(Shortcut.CtrlL);

    // Set the index of the menu item so it is placed below
    //the first submenu item.
    menuItem4.set_Index(1);

    // Add menuItem3 and menuItem4 to menuItem2's list of menu items.
    menuItem2.get_MenuItems().Add(menuItem3);
    menuItem2.get_MenuItems().Add(menuItem4);

    // Add menuItem2 to menuItem1's list of menu items.
    menuItem1.get_MenuItems().Add(menuItem2);

    // Add menuItem1 to the MainMenu for displaying.
    mainMenu1.get_MenuItems().Add(menuItem1);
} //CreateMyMenu
継承階層継承階層
System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.Windows.Forms.Menu
        System.Windows.Forms.MenuItem
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「MenuItem クラス」の関連用語

MenuItem クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



MenuItem クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS