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

MenuStripやStatusStripを使って、メニューやステータスバーの位置をユーザーが変更できるようにする

注意:ここで紹介している方法は、.NET Framework 2.0以降でのみ使用できます。

ToolStripコントロールToolStripContainerコントロール上に配置すれば、ユーザーがToolStripコントロールをドラッグ&ドロップして、自由に位置を変更できるようになります。この方法は、「ToolStripとToolStripContainerを使って、ツールバーの位置をユーザーが変更できるようにする」で説明しています。

実はToolStripコントロールだけでなく、MenuStripコントロールStatusStripコントロールをToolStripContainerコントロール上に配置することによっても、ユーザーが移動させることができるメニューやステータスバーを作ることができます。しかし何もせずにMenuStripやStatusStripコントロールをToolStripContainerコントロール上に配置しただけでは、そうはなりません。デフォルトでは、MenuStripやStatusStripコントロールにグリップが表示されませんので、ユーザーがこれらのコントロールを移動させることができないのです。

グリップがないMenuStripとStatusStripコントロール

このグリップを表示するには、MenuStripやStatusStripのGripStyleプロパティをVisibleにします。また、もしLayoutStyleプロパティがFlowかTableだったら、それ以外の値(StackWithOverflowやHorizontalStackWithOverflowやVerticalStackWithOverflow)に変更する必要もあります。これでグリップが表示され、ユーザーによる移動が可能になるはずです。

グリップが表示されているMenuStripとStatusStripコントロール

以下に、MenuStrip(MenuStrip1)にグリップを表示する例を示します。

VB.NET
コードを隠すコードを選択
'グリップを表示する
MenuStrip1.GripStyle = ToolStripGripStyle.Visible
'レイアウト方法を設定する
'"WithOverflow"が付いた値を指定しないと、グリップが表示されない
MenuStrip1.LayoutStyle = ToolStripLayoutStyle.HorizontalStackWithOverflow
C#
コードを隠すコードを選択
//グリップを表示する
MenuStrip1.GripStyle = ToolStripGripStyle.Visible;
//レイアウト方法を設定する
//"WithOverflow"が付いた値を指定しないと、グリップが表示されない
MenuStrip1.LayoutStyle = ToolStripLayoutStyle.HorizontalStackWithOverflow;
  • 履歴:
  • 2012/02/08 タイトルの変更。説明の書き換え。コードの追加。
  • 2014/9/15 画像を追加など。

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

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