2013-08-23 59 views
3

我有一個datagridview(winforms)與checkbox列以及其他基於文本的列。我已成功解決了大多數圍繞checkbox列的常見問題,這些列在本網站上都有很好的記錄。Datagridview複選框列有一個死區

但是,我剩下1個問題。我可以點擊「直接」在checkbox,它確實以我想要的方式響應。但是,如果我小心地在單元格邊界和控件之間移動鼠標指針,並單擊鼠標,我可以選擇單元格,但checkbox的狀態不會切換。當給定行的行高度較大時,這個問題更加明顯。

感謝所有幫助

注意:這不,我再說一遍,當重點檢查後移開一個給定的複選框電池出現問題。我解決了那個問題。

回答

3

這不是問題。這只是它應該如何工作。對於網格列,您可以擁有cellclick事件和cellcontentclick事件。由於我希望複選框檢查何時單擊單元格內的任何位置,我應該使用單元格單擊。除此之外,您還需要聽取以下內容:

private void Grid_CellClick(object sender, DataGridViewCellEventArgs e) 
    { 
     if ((e.ColumnIndex == 1) && e.RowIndex != -1) 
     { 
      this.MyGrid[1, e.RowIndex].Value = !(bool)this.MyGrid[1, e.RowIndex].Value; 
      this.MyGrid.EndEdit(); 
     } 
    }