title: C# Databound Windows Forms control does not retain value unless you leave the field
body: <p>I saw the answer in <em><a href="https://stackoverflow.com/questions/1060080/databound-winforms-control-does-not-recognize-change-until-losing-focus">Databound Windows Forms control does not recognize change until losing focus</a></em>.</p>
  
  <p>But this doesn't fully answer the question for me. I have the exact same situation. On ToolStrip_click, I go through all of my controls and I force "WriteValue()", but it still reverts to the previous value before the save. Can anyone suggest how I can fix this? Did I implement this incorrectly?</p>
  
  <p>(See code for current (non-working) solution.)</p>
  
  <pre><code>private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
  {
      // Make sure that all items have updated databindings.
      foreach (Control C in this.Controls)
      {
          foreach (Binding b in C.DataBindings)
          {
              // Help: this doesn't seem to be working.
              b.WriteValue();
          }
      }
  }
  </code></pre>
  
  <p>The code is now much simpler, but it is a considerable hack. I'd be very happy to know if there is a more "proper" fix for this.</p>
  
  <pre><code>private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
  {
      // Make sure that all text fields have updated by forcing everything
      // to lose focus except this lonely little label.
      label44.Focus();
  }
  </code></pre>