The Generic cell control does try to click the cell for you. You will notice that with the TextBox sample code, the textbox activates on the first click.
But if the control is a panel or usercontrol, then the generic cell click does is not sufficient to activate the proper control for you. In such a case, you can handle your control's Enter event, and in the event set the focus to the child control you want to get it.
Suppose your control is panel that has a checkbox on it. Here is code that would 'click' the checkbox on the first click.
private void panel1_Enter(object sender, System.EventArgs e)
{
if(Control.MouseButtons == MouseButtons.Left)
{
Point loc = Control.MousePosition;
Point p = this.panel1.PointToClient(loc);
if(this.checkBox1.Bounds.Contains(p))
this.checkBox1.Checked = !this.checkBox1.Checked ;
}
}