我有一个datagridview组合框列。我需要动态地将组合框的宽度调整为最长的字符串宽度,以便用户可以读取组合框项中的长字符串。 我的代码是
int width = comboBox.DropDownWidth;
Graphics g = comboBox.CreateGraphics();
Font font = comboBox.Font;
int vertScrollBarWidth =
(comboBox.Items.Count > comboBox.MaxDropDownItems)
? SystemInformation.VerticalScrollBarWidth : 0;
int newWidth;
foreach (string s in ((ComboBox)sender).Items)
{
newWidth = (int)g.MeasureString(s, font).Width
+ vertScrollBarWidth;
if (width < newWidth)
{
width = newWidth;
}
}
comboBox.DropDownWidth = width;
但这不起作用。我认为代码没有任何问题,但是宽度没有改变。是否必须更改datagridview的任何属性才能更改宽度?