ToolStripComboBox - autosize alle voci
-
02-10-2019 - |
Domanda
Ho un ToolStrip con un controllo ToolStripComboBox su di esso, e vorrei che a Autosize a montare il componente più ampia nella discesa. Come posso fare questo? La proprietà "Autosize" è impostato su "true", ma non sembra essere fare alcuna differenza. Sono stato sbattere la testa su questo per un po '. E 'anche possibile?
Soluzione
Secondo questo articolo di MSDN AutoSize Generalità della proprietà solo alcuni i controlli supportano la proprietà AutoSize. ComboBox non ha il supporto AutoSize.
Altri suggerimenti
Ho avuto lo stesso problema. La mia soluzione era quella di modificare le dimensioni sull'evento discesa. È possibile passare una larghezza massima nella MeasureString, o morsetto maxwidth te stesso prima di impostare la dropdownWidth.
private void m_comboBox_DropDown(object sender, EventArgs e)
{
using (System.Drawing.Graphics graphics = CreateGraphics())
{
int maxWidth = 0;
foreach (object obj in m_comboBox.Items)
{
System.Drawing.SizeF area = graphics.MeasureString(obj.ToString(), m_comboBox.Font);
maxWidth = Math.Max((int)area.Width, maxWidth);
}
m_comboBox.DropDownWidth = maxWidth;
}
}