title: Why DataGridView CellBeginEdit event is triggered twice on first click?
body: <p>I'm fetching a list of records in DataGridView having a checkbox in it. I'm using <strong>CellBeginEdit</strong> to send data when the checkbox is clicked. On form load, if no checkbox is selected and, I select the first checkbox or the first checkbox is already checked it works fine it sends data from the first row but if  I select any other checkbox rather than the first one then <strong>CellBeginEdit</strong> is triggered twice and it sends data from the first row on the first trigger, and then sends data from the selected row. I'm unable to find the problem.</p>
  <p>Here you can find the form image for clarity <a href="https://i.stack.imgur.com/ZESiJ.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/ZESiJ.png" alt="enter image description here" /></a></p>
  <p>Here is the <strong>ListUsers_CellBeginEdit</strong> that is called on the checkbox click.</p>
  <pre><code>private void ListUsers_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
      {
          if (ListUsers.Rows[e.RowIndex].Cells[0].Value != null &amp;&amp; ListUsers.Rows[e.RowIndex].Cells[1].Value != null)
          {
              
          }
      }
  </code></pre>
  <p>Here is the DataGridView designer code</p>
  <pre><code> // 
          // ListUsers
          // 
          this.ListUsers.BackgroundColor = System.Drawing.Color.White;
          this.ListUsers.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
          this.ListUsers.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
          this.chkUsers,
          this.columnHeader17,
          this.columnHeader18});
          this.ListUsers.Location = new System.Drawing.Point(-1, -1);
          this.ListUsers.MultiSelect = false;
          this.ListUsers.Name = &quot;ListUsers&quot;;
          this.ListUsers.Size = new System.Drawing.Size(598, 425);
          this.ListUsers.TabIndex = 0;
          this.ListUsers.CellBeginEdit += new System.Windows.Forms.DataGridViewCellCancelEventHandler(this.ListUsers_CellBeginEdit);
          this.ListUsers.CellEndEdit += new System.Windows.Forms.DataGridViewCellEventHandler(this.ListUsers_CellEndEdit);
          this.ListUsers.EditingControlShowing += new System.Windows.Forms.DataGridViewEditingControlShowingEventHandler(this.ListUsers_EditingControlShowing);
  </code></pre>
  <p>I'm unable to find the problem. Anyone who can help?</p>