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?

È stato utile?

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;
    }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top