private void checklbType_SelectedIndexChanged(object sender, EventArgs e)
{
       // checkedlbType1.EndUpdate();
       // checkedlbType1.Items.EndUpdate();
       // gvHideMatch.Focus();
       // checkedlbType1.Focus();       // 全选
       if (checkedlbType.Items["全选"].CheckState == CheckState.Checked)
       {
            foreach (CheckedListBoxItem checkedItem in checkedlbType1.Items)
            {
                 checkedItem.CheckState = checkedItem.CheckState;
            }
       }
}
我想在做“全选”的效果,但发现他在事件里不能马上获得改变后的CheckState 的值,要点一下其他地方,再点他才可以,就象没结束编辑一样。我已经做了以下操作,但仍然不行:
1.checkedlbType1.CheckOnClick = true;
2.checkedlbType1.EndUpdate();
3.checkedlbType1.Items.EndUpdate();
4.其他控件获得焦点,他再获得焦点,
例如:gvHideMatch.Focus();
      checkedlbType1.Focus();网上没找到什么资料,DevExpress自带的例子好象没什么相关的。望大家指教,谢谢!

解决方案 »

  1.   

     if (checkedlbType.Items["全选"].Check)
    {}
    这样试试
      

  2.   


    没有 Check 属性的
      

  3.   


    checkedItem.CheckState = checkedItem.CheckState;这是什么东东!
      

  4.   

    写错了,是这样checkedItem.CheckState = CheckState.Checked;
      

  5.   

    if(checkedlbType.Items["全选"].Selected)
    {
       for(int i=0;i<this.checkboxlist.Items.count;i++)
       {
          this.checkboxlist[i].Selected;
       }
    }试下这可不可以,我以前好像用过类似...
      

  6.   


    1. checkedlbType 是 CheckedListBoxControl 的对象, checkedlbType.Items["全选"] 没有Selected属性.
    2. checkboxlist是什么? VS2005自带的 CheckListBox 的对象吗? 但我请教的是关于CheckedListBoxControl 的
      

  7.   

    正遇到这个问题,已经解决。如下:
           if (checkedlbType.Items["全选"].CheckState == CheckState.Checked)
           {
                int i = 0;
                while (checkboxlist.GetItem(i) != null)
                {
                    checkboxlist.SetItemCheckState(i, CheckState.Checked);
                    i++;
                }
           }
    楼主试一下,绝对正解。
      

  8.   

    小弟在用DevExpress的时候遇到了类似的毛病,也是先要点一下别的地方才能再选小弟想用CheckedListBoxControl实现只能单选的效果:ItemCheck事件里:
              
      for (int i = 0; i < ((CheckedListBoxControl)sender).Items.Count;i++ )
                {
                    if (i != e.Index)//除去触发SelectedIndexChanged事件以外的选中项都处于未选中状态
                    ((CheckedListBoxControl)sender).SetItemChecked(i, false);
                }求教各位大哥小弟是大三学生