2

我有一个带有 ToolStripComboBox 控件的 ToolStrip,我希望它自动调整大小以适应下拉列表中最宽的项目。我怎样才能做到这一点?“Autosize”属性设置为“true”,但似乎没有任何区别。我一直在努力解决这个问题。甚至可能吗?

4

2 回答 2

7

我有同样的问题。我的解决方案是修改 DropDown 事件的大小。您可以在 MeasureString 中传递一个最大宽度,或者在设置 DropDownWidth 之前自己钳制 maxWidth。

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;
    }
}
于 2010-06-10T00:33:46.643 回答
0

根据这篇 msdn 文章AutoSize 属性概述,只有一些控件支持 AutoSize 属性。ComboBox 不支持 AutoSize。

于 2010-04-29T21:39:13.823 回答