title: button queues its click events instead of disabling it
body: <p>I change my button's "<strong>Enabled</strong>" <em>property</em> to "<strong>false</strong>" but my button still catches it's click <em>event</em>. I put <em>Thread.Sleep()</em> method to imitate some process. While my button is greyed out, i click on it, and after current process is done it begins work again (because i clicked on it while it was greyed out)</p>
  
  <p>Here's my code:</p>
  
  <pre><code>    int i = 0;
  
      public Form1()
      {
          InitializeComponent();
          label1.Text = "0";
      }
  
      private void button1_Click(object sender, EventArgs e)
      {
          //first click
          button1.Enabled = false;
          i++;
          Thread.Sleep(3000);           //if i click twice more while button is greyed-out the app will be non-responsive for 9 second and then prints "3" to my label
          label1.Text = i.ToString();
          button1.Enabled = true;
      }
  </code></pre>
  
  <p>How can i disable my button completely (not allowing it's <em>events</em> to rise, but visible)?</p>