title: Tooltip on disabled button
body: <p>I posted this question sometime back and someone marked it as DUPLICATE. But when i asked him questions about the post that supposedly has the answer, he didn't had any proper explanations. So please read this question carefully before marking or down voting.</p>
  
  <p>My question is regarding displaying tooltip on a Button that's DISABLED.</p>
  
  <pre><code>this.btnMy.Enabled = false;
  </code></pre>
  
  <p>I have a button which is placed inside a panel with a tooltip associated to it. Now it all works fine when button is enabled.</p>
  
  <p>But if button is <strong>disabled</strong>, then tooltip doesn't work. This seems to be the standard behavior.</p>
  
  <p>Now i want to show the tooltip when button is <strong>disabled</strong> too. So i did the following thing.</p>
  
  <pre><code>private ToolTip m_tooltip = new ToolTip();
  private bool toolTipShown = false;
  private button btnMy;
  
  m_tooltip.InitialDelay = 0;
  m_tooltip.ShowAlways = true;
  
   private void myForm_MouseMove(object sender, MouseEventArgs e)
          {
  
              if (this.btnMy == FindControlAtCursor(this))
              {
                  if (!toolTipShown)
                  {
                      m_tooltip.Show("MyToolTip", this.btnMy, e.Location);
                      toolTipShown = true;
                  }
              }
              else
              {
                  m_tooltip.Hide(this.btnGiven);
                  toolTipShown = false;
              }
          }
  </code></pre>
  
  <p>As the button is inside a panel, i had to use couple other functions to find the exact button control when mouse is over it.</p>
  
  <pre><code>public static Control FindControlAtPoint(Control container, Point pos)
          {
              Control child;
              foreach (Control c in container.Controls)
              {
                  if (c.Visible &amp;&amp; c.Bounds.Contains(pos))
                  {
                      child = FindControlAtPoint(c, new Point(pos.X - c.Left, pos.Y - c.Top));
                      if (child == null) return c;
                      else return child;
                  }
              }
              return null;
          }
  
          public static Control FindControlAtCursor(Form form)
          {
              Point pos = Cursor.Position;
              if (form.Bounds.Contains(pos))
                  return FindControlAtPoint(form, form.PointToClient(Cursor.Position));
              return null;
          }
  </code></pre>
  
  <p>Now when i debug, i can see the code finding the right button and trying to call ToolTip.Show, but for some reason it's not getting displayed.</p>
  
  <p>While debugging, i see a small tooltip pop up. Other wise in release mode, nothing gets shown at all.</p>
  
  <p>Any ideas?</p>