2

ToolStripComboBox コントロールを含む ToolStrip があり、ドロップダウン リストの最も幅の広い項目に合わせて自動サイズ変更したいと考えています。どうすればそれを達成できますか?「Autosize」プロパティは「true」に設定されていますが、違いはないようです。私はしばらくこれについて頭を悩ませてきました。それは可能ですか?

4

2 に答える 2

7

私も同じ問題を抱えていました。私の解決策は、DropDown イベントのサイズを変更することでした。DropDownWidth を設定する前に、MeasureString で最大幅を渡すか、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 に答える