我有一个带有ToolStripComboBox控件的ToolStrip,我想让它自动调整大小以适合下拉列表中最宽的项。我如何才能做到这一点?"Autosize“属性被设置为"true",但似乎没有任何区别。我已经为这件事绞尽脑汁好一阵子了。这有可能吗?
发布于 2010-04-30 05:39:14
根据这篇msdn文章AutoSize Property Overview,只有一些控件支持AutoSize属性。ComboBox不支持AutoSize。
发布于 2010-06-10 08:33:47
我也有同样的问题。我的解决方案是修改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;
}
}https://stackoverflow.com/questions/2740545
复制相似问题