ToolStripComboBox - автоматическое изменение размеров элементов - PullRequest
2 голосов
/ 30 апреля 2010

У меня есть ToolStrip с элементом управления ToolStripComboBox, и я бы хотел, чтобы он автоматически менялся, чтобы соответствовать самому широкому элементу в раскрывающемся списке Как я могу это сделать? Свойство «Autosize» имеет значение «true», но, похоже, это не имеет значения. Я бился головой об этом некоторое время. Это вообще возможно?

Ответы [ 2 ]

6 голосов
/ 10 июня 2010

У меня была такая же проблема. Моим решением было изменить размер события DropDown. Вы можете передать максимальную ширину в MeasureString или сами зафиксировать maxWidth перед установкой 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;
    }
}
0 голосов
/ 30 апреля 2010

Согласно этой статье MSDN Обзор свойств AutoSize только некоторые элементы управления поддерживают свойство AutoSize. ComboBox не поддерживает AutoSize.

...