Completed
Last Updated: 10 Aug 2012 07:42 by ADMIN
ADMIN
Stefan
Created on: 10 Aug 2012 07:42
Category: UI Framework
Type: Bug Report
4
FIX. TPF - RadCheckBoxElement shows incorrect toggle/checked state when disabled
No matter that is the ToggleState of the check box, when disabled always shows as ToggleState.Off. Appears with Office2007Black and probably other themes.

To work around the issue, capture two images of the check box in enabled state for the On and Indeterminate state and assign those when the check box is disabled. Here is a sample:

 public Form1()
        {
            InitializeComponent();


            radCheckBoxElement1.IsThreeState = true;
            radCheckBoxElement1.ToggleState = Telerik.WinControls.Enumerations.ToggleState.On;

            radCheckBoxElement2.IsThreeState = true;
            radCheckBoxElement2.ToggleState = Telerik.WinControls.Enumerations.ToggleState.Off;

            radCheckBoxElement3.IsThreeState = true;
            radCheckBoxElement3.ToggleState = Telerik.WinControls.Enumerations.ToggleState.Indeterminate;

            radCheckBoxElement1.EnabledChanged += new EventHandler(radCheckBoxElement1_EnabledChanged);
            radCheckBoxElement2.EnabledChanged += new EventHandler(radCheckBoxElement1_EnabledChanged);
            radCheckBoxElement3.EnabledChanged += new EventHandler(radCheckBoxElement1_EnabledChanged);
        }

        void radCheckBoxElement1_EnabledChanged(object sender, EventArgs e)
        {
            RadCheckBoxElement checkBox = sender as RadCheckBoxElement;
            if (checkBox.Enabled)
            {
                checkBox.CheckMarkPrimitive.Image = null;
            }
            else if (checkBox.ToggleState == Telerik.WinControls.Enumerations.ToggleState.On)
            {
                checkBox.CheckMarkPrimitive.Image = Resources.check;
            }
            else if (checkBox.ToggleState == Telerik.WinControls.Enumerations.ToggleState.Indeterminate)
            {
                checkBox.CheckMarkPrimitive.Image = Resources.indeterminate;
            }
        }

        private void radButton1_Click(object sender, EventArgs e)
        {
            radCheckBoxElement1.Enabled = radCheckBoxElement2.Enabled = radCheckBoxElement3.Enabled = !radCheckBoxElement1.Enabled;
        }
0 comments