title: How can I change ComboBox's drop down list dynamically, when it's showed on-screen already?
body: <p>I populate combo box with items from list <code>TownList</code>, filtered by text <code>searchString</code> in combobox</p>
  
  <p><code>List&lt;Towns&gt; towns = PIKBLL.TownList.FindAll(p =&gt; p.Name.Contains(searchString));
   (sender as ComboBox).DataSource = towns;</code></p>
  
  <p>And I do it every time user enters text in combo. </p>
  
  <p>Also, in same event handler I tell combobox to show it's drop down this way: <code>cb.DroppedDown = true;</code> Everything works fine, but...when filter results count gets smaller and smaller, combobox's drop-down height remains the same.</p>
  
  <p>I've tried to call such methods as:</p>
  
  <pre><code>cb.PerformLayout();
  cb.Refresh();
  cb.Update();
  </code></pre>
  
  <p>I've tried this as well:</p>
  
  <pre><code>if (towns.Count != 0)
  {
      if (towns.Count * cb.ItemHeight &lt; 300)
          cb.DropDownHeight = towns.Count * cb.ItemHeight;
       else
          cb.DropDownHeight = cb.ItemHeight * 15;
   }
  </code></pre>
  
  <p>My question is: how can I tell combobox to recalculate it's list of items and redraw it dynamically without just hiding and showing this list again? </p>