)
We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. (Last updated on: June 24, 2019).
Unfortunately, activation email could not send to your email. Please try again.
Syncfusion Feedback

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?

Platform: WinForms |
Control: GridControl |
Published Date: April 30, 2011 |
Last Revised Date: December 20, 2019

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

2X faster development

The ultimate WinForms UI toolkit to boost your development speed.
ADD COMMENT
You must log in to leave a comment

Please sign in to access our KB

This page will automatically be redirected to the sign-in page in 10 seconds.

Up arrow icon

Warning Icon You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.Close Icon

Live Chat Icon For mobile
Live Chat Icon