Serialcoder en Français Serialcoder in English
TEL : +33 (0)9 72 13 15 17

Windows Forms FAQ resources

21. Windows Forms ComboBox

21.7 How do I set the width of a combobox to fit the entries in its list?


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