Articles in this section
Category / Section

How to choose the checkbox checked or unchecked the first click when the checkbox is in the panel and inside a cell in WinForms GridControl?

1 min read

Choose the checkbox selection in a grid

The first click of the generic cell tries to activate the control of the cell, but when the control is a panel or user control, then the generic cell click is not sufficient enough to activate the proper control.

Solution

When your control is a panel that has a checkbox on it, you must handle the control's Enter event, and in the event set the focus to the child control you want to get it from. The following code examples in C# and VB.NET click the checkbox on the first click.

C#

this.gridControl1[3, 4].CellType = "Control";
// Set the panel as a control for the cells[3,4].
this.gridControl1[3, 4].Control = panel1;
void panel1_Enter(object sender, 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;
        if( this.checkBox2.Bounds.Contains(p))
            this.checkBox2.Checked = ! this.checkBox2.Checked; 
     }
}

VB

Me.gridControl1(3, 4).CellType = "Control"
'Set the panel as a control for the cells[3,4].
Me.gridControl1(3, 4).Control = panel1
Private Sub panel1_Enter(ByVal sender As Object, ByVal e As EventArgs)
    If Control.MouseButtons = MouseButtons.Left Then
         Dim loc As Point = Control.MousePosition
         Dim p As Point = Me.panel1.PointToClient(loc)
         If Me.checkBox1.Bounds.Contains(p) Then
              Me.checkBox1.Checked = Not Me.checkBox1.Checked
         End If
         If Me.checkBox2.Bounds.Contains(p) Then
              Me.checkBox2.Checked = Not Me.checkBox2.Checked
         End If
    End If
End Sub

GridControl cell with panel

Figure 1: GridControl cell with Panel

Samples:

C#: CheckBoxInPanel-CS.zip

VB: CheckBoxInPanel-VB.zip

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please sign in to leave a comment
Access denied
Access denied