DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

メニューバーを縦に表示する

通常メニューバーに表示されている項目(メインメニューのトップレベルの項目)は、横に並んで1行で表示されます。しかし、例えばメニューをフォームの左や右側に設置した時は、縦に並んだ方が良いでしょう。ここでは、メニューバーを縦に表示する方法を紹介ましす。

.NET Framework 2.0以降で、MenuStripコントロールを使用している場合

MenuStripコントロールのLayoutStyleプロパティをVerticalStackWithOverflowかTableにすると、縦に表示されるようになります。MenuStripコントロールをフォームの上ではなく、左か右に設置した場合(つまり、MenuStripコントロールのDockプロパティがLeftかRightの場合)、デフォルトでLayoutStyleプロパティはVerticalStackWithOverflowになります。

LayoutStyleプロパティがVerticalStackWithOverflowの時は、項目が中央に表示されます。Tableでは、右寄せで表示されます。

LayoutStyleをVerticalStackWithOverflowにすると、次のようになります。

VerticalStackWithOverflow

LayoutStyleをTableにすると、次のようになります。

Table

ちなみに、メニュー項目に表示する文字を縦書きにすることもできます。ToolStripItem.TextDirectionプロパティをVertical90かVertical270にすれば、縦書きになります(デフォルトは、Horizontal)。

MenuStripのLayoutStyleをTableにして、すべてのToolStripMenuItemのTextDirectionをVertical270にすると、次のようになります。

Vertical270

.NET Framework 1.1以前で、MainMenuコントロールを使用している場合

MenuItemコントロールでは、MenuItem.BarBreakプロパティまたはBreakプロパティにより、メニューを指定した項目で折り返して表示することができるようになります。これを使うことにより、下図のようにトップレベルメニューを縦に表示したり、メニュー項目を横に表示することが出来るようになります。

VB.NET
コードを隠すコードを選択
'トップレベルメニューを縦に表示
MenuItem2.Break = True
MenuItem3.Break = True
'メニュー項目を横に表示
MenuItem32.Break = True
MenuItem33.Break = True
C#
コードを隠すコードを選択
//トップレベルメニューを縦に表示
MenuItem2.Break = true;
MenuItem3.Break = true;
//メニュー項目を横に表示
MenuItem32.Break = true;
MenuItem33.Break = true;

上の例ではBreakプロパティを使いましたが、BarBreakプロパティでも同様のことが出来ます。BarBreakプロパティとBreakプロパティの違いは、BarBreakプロパティの場合、メニュー項目の左端にセパレータが表示されるという点です(ただしトップレベルメニューには表示されません)。次のサンプルでBarBreakプロパティとBreakプロパティの違いを確かめてください。

VB.NET
コードを隠すコードを選択
MenuItem1.BarBreak = True
MenuItem3.Break = True
MenuItem31.BarBreak = True
MenuItem32.BarBreak = True
MenuItem32.Break = True
MenuItem33.Break = True
C#
コードを隠すコードを選択
MenuItem1.BarBreak = true;
MenuItem3.Break = true;
MenuItem31.BarBreak = true;
MenuItem32.BarBreak = true;
MenuItem32.Break = true;
MenuItem33.Break = true;

上記の例ではメニューは次のように表示されます。

  • 履歴:
  • 2007/1/15 MenuStripに関する記述を追加。
  • 2014/5/26 題名を変更など。

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • .NET Tipsをご利用いただく際は、注意事項をお守りください。