ToolStripComboBox - tamaño automático de artículos
-
02-10-2019 - |
Pregunta
Tengo un ToolStrip con un control ToolStripComboBox en él, y me gustaría que autoSize para encajar el elemento más ancho en la lista desplegable. ¿Cómo puedo lograr eso? La propiedad "Tamaño automático" está ajustado a "true", pero no parece estar haciendo ninguna diferencia. He estado golpeando mi cabeza sobre esto durante un tiempo. ¿Es posible?
Solución
De acuerdo con este artículo de MSDN AutoSize Descripción de la característica única algunos de los controles admiten la propiedad AutoSize. ComboBox no tiene soporte AutoSize.
Otros consejos
Yo tenía el mismo problema. Mi solución fue modificar el tamaño del evento desplegable. Puede pasar un ancho máximo en el MeasureString, o una abrazadera anchoMax a sí mismo antes de establecer 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;
}
}