title: Application.Idle event triggering every time
body: <p>I have a user control where i registered idle event under Load event of that control.</p>
  
  <pre><code>Control_Load(object sender, System.EventArgs e)
  {
      Application.Idle += new EventHandler(Application_Idle);
  }
  </code></pre>
  
  <p>I know this will trigger when application finishes processing and reached idle state.But i really confused what is application here which goes idle, does that this usercontrol where load event register the idle event handler.When i put breakpoint every time it hits, what does this means?</p>
  
  <p>For example i created a Form which contains this code</p>
  
  <pre><code>int counter = 0;
  private void Form1_Idle(object sender, System.EventArgs e)
  {
      counter++;
      label1.Text = counter.ToString();
  }
  
  private void Form1_Load(object sender, System.EventArgs e)
  {
      Application.Idle +=new EventHandler(Form1_Idle);
  }
  </code></pre>
  
  <p>then i create some buttens in that form which has certain operations to do.As per my understading label counter should not increase when i am doing operations through the buttons i created because its not in idle state, but now what happens is even some operation going on by clicking button lable counter is increasing, except if i press form  title bar and move the form around.</p>
  
  <p>One more thing do i need to detach these event handler when close my window even if this is main application window. If so if i do in dispose method will that sufficient?</p>
  
  <pre><code>protected override void Dispose(bool disposing)
  </code></pre>
  
  <p><strong>UPDATE</strong>
  if i am pressing some text through keyboard say "LARSEN" ,between the press of alphabet "L" and "A" does idle event occurs?</p>