Menustripコントロールは、レイアウトスタイルをStackWithOverFlowに設定できますか?
質問
メノーストリップでシンプルなフォームを作成します。メノーストリップの LayoutStyle
に設定されています HorizontalStackWithOverflow
(デフォルト)。
による MenustripのMSDNリファレンス, 、 これは レイアウトスタイル プロパティはToolStripから継承されます。レイアウトスタイルの可能な値の1つはです HorizontalStackWithOverflow
これもデフォルト設定です。この設定は、アイテムを提供する必要があります Overflow
網に設定されたプロパティは、オーバーフローボタンに移動します。
アプリケーションを実行してフォームをサイズ変更してメニューが完全に収まらないようにすると、これは発生しません。 ToolStripMenuitems Overflow Propertyをasoneedに設定しましたが、フォームを変更すると、右側のメニュー項目が消えます。
ドキュメントは間違っていますか?メノーストリップではなく、ツールストリップでオーバーフローバットンを取得できますか?それとも、物事を機能させるために私がしなければならないことはありますか?それとも、ドキュメントを誤解しているだけですか?
解決
私は同じ問題を抱えていて、それを機能させる方法を見つけました。
メノーストリップでは、設定する必要があります。
myMenuStrip.CanOverflow = True
デフォルトはfalseです。
次に、各メニューエムについて、あなたは設定する必要があります:
myToolStripMenuItem.Overflow = ToolStripItemOverflow.AsNeeded
また
myToolStripMenuItem.Overflow = ToolStripItemOverflow.Always
デフォルトはToolStripIteMoverflow.neverです
参考文献:
他のヒント
Toolstripクラスには、このような毛がたくさんあります。ここでの適切な選択は、メニュー項目をラップするためのレイアウトスタイル=フローだと思います。これは、組み込みのWindowsメニューの動作方法です。
ただし、これが引き起こすレイアウトの問題を処理する必要があります。フォームにドック=塗りつぶしのパネルを置いて、メニューストリップがより多くのスペースが必要なときにすべてのコントロールが自動的に下に移動するようにします。