Può un controllo MenuStrip avere il suo set LayoutStyle a StackWithOverflow?
Domanda
I creare un modulo semplice con un MenuStrip. LayoutStyle
del MenuStrip è impostato su HorizontalStackWithOverflow
(impostazione predefinita).
Secondo la di riferimento MSDN su MenuStrip , la sua proprietà LayoutStyle è ereditato da ToolStrip. Uno dei possibili valori LayoutStyle è HorizontalStackWithOverflow
che è anche l'impostazione predefinita. Questa impostazione dovrebbe fornire gli elementi con il suo insieme di proprietà Overflow
a ASNEEDED vengono spostati a un tasto di overflow.
Quando eseguo l'applicazione e ridimensionare il form in modo che il menu non si adatta completamente, questo non accade. Ho impostato la mia proprietà ToolStripMenuItems Overflow per ASNEEDED, ma quando ho ridimensionare la forma, le voci del menu a destra semplicemente sparire.
è il male documentazione e si può ottenere solo overflowbutton su un ToolStrip e non su un MenuStrip? O c'è qualcos'altro che devo fare per far funzionare le cose? O sto solo fraintendendo la documentazione?
Soluzione
Ho appena avuto lo stesso problema, e ha trovato un modo per farlo funzionare.
Al MenuStrip è necessario impostare:
myMenuStrip.CanOverflow = True
Il valore predefinito è falso.
Poi, per ogni MenuItem è necessario impostare:
myToolStripMenuItem.Overflow = ToolStripItemOverflow.AsNeeded
o
myToolStripMenuItem.Overflow = ToolStripItemOverflow.Always
L'impostazione predefinita è ToolStripItemOverflow.Never
References:
Altri suggerimenti
Le classi ToolStrip hanno un sacco di peli come questo. Credo che la selezione appropriata qui è LayoutStyle = Portata per ottenere le voci di menu avvolti. Questo è il modo in cui il built-in di lavoro Windows menu.
Dovete comunque di prendersi cura del problema layout di questo cause. Mettere un pannello sul modulo con Dock = Fill in modo che tutti i controlli si spostano automaticamente quando la barra di menu ha bisogno di più spazio.