You can iterate through the list to find the longest text extent using MeasureString, and then use this as the combobox width adding a fudge factor for the dropdown button.
System.Drawing.Graphics g = comboBox1.CreateGraphics();
float maxWidth = 0f;
foreach(object o in comboBox1.Items)
{
float w = g.MeasureString(o.ToString(), comboBox1.Font).Width;
if(w > maxWidth)
maxWidth = w;
}
g.Dispose();
comboBox1.Width = (int) maxWidth + 20; // 20 is to take care of button width
Share with