2010-04-29 37 views
2

我有一個ToolStripComboBox控件的ToolStrip,我希望它自動調整大小以適應下拉列表中最寬的項目。我怎麼能做到這一點? 「Autosize」屬性設置爲「true」,但它似乎沒有任何區別。我一直在嘲弄我的頭腦。它甚至有可能嗎?ToolStripComboBox - 自動調整項目

回答

0

根據此msdn文章AutoSize Property Overview只有一些控件支持AutoSize屬性。 ComboBox沒有AutoSize支持。

+1

這不是很有幫助...謝謝MS。 – rotard 2010-04-29 22:35:56

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; 
    } 
} 
+0

工作正常,但需要一整秒的10.000項。 – Carra 2011-03-17 14:36:19