Search code examples
c#gridviewdevexpress

Disable repositoryItemCheckEdit after it's checked


I have a repositoryItemCheckEdit in a column of my grid. The task I want to do is :

Once the user pressed the CheckEdit , this cell become disable so that the user can not make click again.

To do this task I'm using the CheckedChanged event, in the following way :

private void repositoryItemCheckEdit1_CheckedChanged(object sender, EventArgs e)
{
     var obj = sender as CheckEdit;
     if (obj.Checked)
     {
        repositoryItemCheckEdit1.Enabled = false;                
     }
}

With the above event the only thing I get is that the cell becomes clearer , but not is disabled. Even if I make click again it allows me to do it.

Any help is appreciated.


Solution

  • You will probably have more luck/an easier time dealing with this using the brute force method... at least i find this a lot easier than dealing with the crazyness of DataGridView controls scheme.

    Use the Tag attribute of your control to set a flag on it, and then when someone tries to un-check it/change it, force it back to checked. Like so:

    private void repositoryItemCheckEdit1_CheckedChanged(object sender, EventArgs e)
    {
         var obj = sender as CheckEdit;
         if(obj.Tag != null)
         {
             obj.Checked = true;
             repositoryItemCheckEdit1.Enabled = false;
         }
         else
         {
             if (obj.Checked)
             {
                obj.Tag = true;
                repositoryItemCheckEdit1.Enabled = false;                
             }
         }
    }