title: How do I force creation of the Winform handle in C#
body: <p>I am getting the following runtime error message </p>
  
  <blockquote>
    <p>Invoke or BeginInvoke cannot be called on a control until the window handle has been created.</p>
  </blockquote>
  
  <p>Here is what I think is going on.  My winform constructor is creating some objects, one of which received asynchronous TCP/IP data.  To make a long story short, I have event delegates which allow the class receiving the network data to call a routine from the Winform to print the data to a text box.  This is so I can see what was received.  I can see that data is immediately received.  This happens before the winform constructor has finished.  </p>
  
  <p>I read around and you cannot invoke a winform or winform component until its handle has been created.  I suspect this is what I am violating.  Supposedly there is a function to force this.  I tried adding the following code to my winform constructor to force the creation before I create my class receiving TCP/IP data.  However, the error remains.</p>
  
  <pre><code>InitializeComponent();
  this.CreateControl();
  this.HistoryBox.CreateControl();
  </code></pre>
  
  <p>Here is the code for my winform delegate in case it helps:</p>
  
  <pre><code>    public void Print_Console_Message(string message)
      {
          Console_Output.Enqueue(message);
          this.Invoke(new EventHandler(PrintToConsole));
      }
      private void PrintToConsole(object sender, EventArgs e)
      {
          string message = Console_Output.Dequeue();
  
          if (message.Length != 0)
          {
              HistoryBox.AppendText(message + "\n" + "\n");
          }
      }
  </code></pre>
  
  <p>I realize there is a way to check object handle was created and avoid the call in that case, however, I am not interested in simply inhibiting some of the output.</p>
  
  <p>Does anyone know how I can force the handle or control creation so that the delegate functions could be called before the constructor is finished?</p>