ToolStripComboBox - 自动调整项目

时间:2010-04-29 20:24:39

标签: .net winforms toolstripcombobox

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

2 个答案:

答案 0 :(得分:6)

我遇到了同样的问题。我的解决方案是修改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;
    }
}

答案 1 :(得分:0)

根据这篇msdn文章AutoSize Property Overview,只有部分控件支持AutoSize属性。 ComboBox没有AutoSize支持。