Frage

Ich habe einen Toolstrip mit einer ToolStripComboBox Kontrolle über sie, und ich mochte es autosize das breiteste Element in der Dropdown-Liste zu passen. Wie kann ich das erreichen? Die „Autosize“ Eigenschaft auf „true“, aber es scheint keinen Unterschied zu machen. Ich habe meinen Kopf über diese für eine Weile hämmern. Ist es überhaupt möglich?

War es hilfreich?

Lösung

Nach diesem MSDN-Artikel Auto-Size-Eigentum-Überblick nur einige die Steuerelemente unterstützen die Autosize-Eigenschaft. ComboBox hat keine Auto-Size-Unterstützung.

Andere Tipps

Ich hatte das gleiche Problem. Meine Lösung war, die Größe auf dem Drop-Down-Ereignisse zu ändern. Sie können eine maximale Breite in der MeasureString passieren, oder Klemme maxWidth Sie sich, bevor Sie die dropdown gesetzt.

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;
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top