title: Why overriden ToString() do not return what I want when item added to ComboBox?
body: <pre><code>public partial class TestConrol : UserControl
  {
      public TestConrol()
      {
          InitializeComponent();
      }
  
      public override string ToString()
      {
          return "asd";
      }
  }
  
  public partial class Form1 : Form
  {
      public Form1()
      {
          InitializeComponent();
      }
  
      private void Form1_Load(object sender, EventArgs e)
      {
          TestConrol tc1 = new TestConrol();
          comboBox1.Items.Add(tc1);
  
          TestConrol tc2 = new TestConrol();
          comboBox1.Items.Add(tc2);
      }
  }
  </code></pre>
  
  <p>When form loaded, I see combobox has two items with empty names, instead of "asd" :/<br />
  But this work if I override ToString() in common class, not derived from anything:</p>
  
  <pre><code>public class TestClass
  {
      public override string ToString()
      {
          return "bla bla bla";
      }
  }
  
  public partial class Form1 : Form
  {
      public Form1()
      {
          InitializeComponent();
      }
  
      private void Form1_Load(object sender, EventArgs e)
      {
          TestClass tcl = new TestClass();
          comboBox1.Items.Add(tcl);
      }
  }
  </code></pre>
  
  <p>After that I see in combobox "bla bla bla"</p>