通常メニューバーに表示されている項目(メインメニューのトップレベルの項目)は、横に並んで1行で表示されます。しかし、例えばメニューをフォームの左や右側に設置した時は、縦に並んだ方が良いでしょう。ここでは、メニューバーを縦に表示する方法を紹介ましす。
MenuStripコントロールのLayoutStyleプロパティをVerticalStackWithOverflowかTableにすると、縦に表示されるようになります。MenuStripコントロールをフォームの上ではなく、左か右に設置した場合(つまり、MenuStripコントロールのDockプロパティがLeftかRightの場合)、デフォルトでLayoutStyleプロパティはVerticalStackWithOverflowになります。
LayoutStyleプロパティがVerticalStackWithOverflowの時は、項目が中央に表示されます。Tableでは、右寄せで表示されます。
LayoutStyleをVerticalStackWithOverflowにすると、次のようになります。
LayoutStyleをTableにすると、次のようになります。
ちなみに、メニュー項目に表示する文字を縦書きにすることもできます。ToolStripItem.TextDirectionプロパティをVertical90かVertical270にすれば、縦書きになります(デフォルトは、Horizontal)。
MenuStripのLayoutStyleをTableにして、すべてのToolStripMenuItemのTextDirectionをVertical270にすると、次のようになります。
MenuItemコントロールでは、MenuItem.BarBreakプロパティまたはBreakプロパティにより、メニューを指定した項目で折り返して表示することができるようになります。これを使うことにより、下図のようにトップレベルメニューを縦に表示したり、メニュー項目を横に表示することが出来るようになります。
'トップレベルメニューを縦に表示 MenuItem2.Break = True MenuItem3.Break = True 'メニュー項目を横に表示 MenuItem32.Break = True MenuItem33.Break = True
//トップレベルメニューを縦に表示 MenuItem2.Break = true; MenuItem3.Break = true; //メニュー項目を横に表示 MenuItem32.Break = true; MenuItem33.Break = true;
上の例ではBreakプロパティを使いましたが、BarBreakプロパティでも同様のことが出来ます。BarBreakプロパティとBreakプロパティの違いは、BarBreakプロパティの場合、メニュー項目の左端にセパレータが表示されるという点です(ただしトップレベルメニューには表示されません)。次のサンプルでBarBreakプロパティとBreakプロパティの違いを確かめてください。
MenuItem1.BarBreak = True MenuItem3.Break = True MenuItem31.BarBreak = True MenuItem32.BarBreak = True MenuItem32.Break = True MenuItem33.Break = True
MenuItem1.BarBreak = true; MenuItem3.Break = true; MenuItem31.BarBreak = true; MenuItem32.BarBreak = true; MenuItem32.Break = true; MenuItem33.Break = true;
上記の例ではメニューは次のように表示されます。
注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。