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?

¿Fue útil?

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;
    }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top