title: IsBalloon property makes Windows Forms ToolTip position inconsistent
body: <p>When I set the <code>IsBalloon</code> property of a <code>ToolTip</code> control, and then use the <code>ToolTip.Show()</code> method to display it, the balloon's tail doesn't always point at the location I request. It seems like the first time I call <code>Show()</code>, the tooltip control appears with its top-left corner in the location I requested, and the balloon tail pointing down. If I call <code>Show()</code> again before the tooltip fades, then it reappears in the position I asked for.</p>
  
  <p>Is there some setting that will make the position more consistent? I'd like to keep the balloon style if possible.</p>
  
  <p>Here's a code sample that will demonstrate the failure. I'm asking for it to point at the top-left corner of the text box.</p>
  
  <pre><code>using System;
  using System.Windows.Forms;
  
  public class Form1 : Form
  {
      const int TIP_X = 50;
      const int TIP_Y = 100;
  
      private void button1_Click(object sender, EventArgs e)
      {
          toolTip1.Show("Test", groupBox1, TIP_X, TIP_Y, 5000);
      }
  
      /// &lt;summary&gt;
      /// Required method for Designer support - do not modify
      /// the contents of this method with the code editor.
      /// &lt;/summary&gt;
      private void InitializeComponent()
      {
          this.components = new System.ComponentModel.Container();
          this.button1 = new System.Windows.Forms.Button();
          this.groupBox1 = new System.Windows.Forms.GroupBox();
          this.textBox1 = new System.Windows.Forms.TextBox();
          this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
          this.groupBox1.SuspendLayout();
          this.SuspendLayout();
  
          this.button1.Location = new System.Drawing.Point(50, 50);
          this.textBox1.Location = new System.Drawing.Point(TIP_X, TIP_Y);
          this.toolTip1.IsBalloon = true;
  
          this.button1.Click += new System.EventHandler(this.button1_Click);
          this.groupBox1.Controls.Add(this.textBox1);
          this.groupBox1.Controls.Add(this.button1);
          this.groupBox1.Location = new System.Drawing.Point(10, 10);
          this.groupBox1.Size = new System.Drawing.Size(200, 200);
          this.Controls.Add(this.groupBox1);
          this.groupBox1.ResumeLayout(false);
          this.groupBox1.PerformLayout();
          this.ResumeLayout(false);
  
      }
  
      public Form1()
      {
          InitializeComponent();
      }
  
      private Button button1;
      private GroupBox groupBox1;
      private TextBox textBox1;
      private ToolTip toolTip1;
  
      /// &lt;summary&gt;
      /// Required designer variable.
      /// &lt;/summary&gt;
      private System.ComponentModel.IContainer components = null;
  
      /// &lt;summary&gt;
      /// Clean up any resources being used.
      /// &lt;/summary&gt;
      /// &lt;param name="disposing"&gt;true if managed resources should be disposed; otherwise, false.&lt;/param&gt;
      protected override void Dispose(bool disposing)
      {
          if (disposing &amp;&amp; (components != null))
          {
              components.Dispose();
          }
          base.Dispose(disposing);
      }
  }
  </code></pre>
  
  <p>I'm trying to notify the user of something they might be interested in, but they can safely ignore it. I thought that a balloon notification would work well, since it can point to something specific in the user interface that I'm telling the user about.</p>
  
  <p>I'm using Visual Studio 2008, running on .NET 3.5 under Windows&nbsp;XP.</p>