Frankly speaking, I do not see the whole logic of your app and may not understand completely what you want to implement. However, some tips are below.
First of all, if you want to use the CellClick event to do something when the user clicks the check boxes in the first column, you also need to analyze the e.ColIndex parameter of the event to check whether it is the first column (its index is zero).
Another way is to handle the AfterCommitEdit event for the cells in the first column. The check box states are linked to cell values, and if the user changes the state of a check box, the corresponding cell value is changed and you can handle this in AfterCommitEdit.
You can use other events to know what part of iGrid cell is clicked by the user. For instance, the CellMouseDown event provides you with the e.ElemControl parameter you can read to know whether the tree button is clicked.
And finally, iGrid triggers the BeforeRowStateChange and AfterRowStateChange event when a row is expanded or contracted. Maybe, these events may help you too.
Feel free to ask us more if I did not help to solve your problem.