public override Size GetPreferredSize (Size constrainingSize)
{
// base should calculate the button part for us, add the splitter
// and drop down arrow part to that
Size s = base.GetPreferredSize (constrainingSize);
if (s.Width < 23)
s.Width = 23;
// If we are a fixed size, we can't add more in for the drop down
// button, but we can for autosize
if (AutoSize)
s.Width += (this.drop_down_button_width - 2);
return s;
}