ComboBox with long text

Many people around me have already encountered this problem. What if I want to show longer text in a combobox than the length of this component? A really short code will solve this problem.

I have created a winform with 2 ComboBoxes on it: comboBox1, comboBox2. I use both popular dropdownstyle of ComboBoxes: DropDown and DropDownList. Set both ComboBoxes datasource to an enum in the constructor of the Form:

enum DataContent
    public partial class Form1 : Form
        public Form1()
            comboBox1.DataSource = Enum.GetValues(typeof(DataContent));
            comboBox2.DataSource = Enum.GetValues(typeof(DataContent));

The result is:

Now I create a DropDown event that will make both ComboBoxes subscribe to:

private void comboBoxes_DropDown(object sender, EventArgs e)
            Graphics g = (sender as ComboBox).CreateGraphics();
            float highest = 0;
            for (int i = 0; i < (sender as ComboBox).Items.Count; i++)
                SizeF textLength = g.MeasureString((sender as ComboBox).Items[i].ToString(), (sender as ComboBox).Font);
                if (textLength.Width > highest)
                    highest = textLength.Width;
            if (highest > 0)
                (sender as ComboBox).DropDownWidth = (int) highest;

And the result is the expected: