CheckedListBox  中如何让某个子项 不可打勾或取消打勾?就是那个子项的是否被选的状态不可被用户改变 ?谢谢

解决方案 »

  1.   

     CheckBoxList1.Items[0].Enabled = false;试过,可行。。
      

  2.   

    参考
    <script language=Javascript>
    function checkAll(e, itemName)
    {
        var aa = document.getElementsByName(itemName);
        for (var i=0; i<aa.length; i++)
        aa[i].checked = e.checked;
    }
    function selectOther(obj)  
    {  
        var aa = document.getElementsByName(obj);
        for(var i=0;i<aa.length;i++)  
        if(aa[i].type=="checkbox")  
        {  
        if(!aa[i].checked)  
        aa[i].checked=true;  
        else  
        aa[i].checked=false;  
        }  
    }  
    </script><input type=checkbox name=mm value=a><br>
    <input type=checkbox name=mm value=b><br>
    <input type=checkbox name=mm value=c><br>
    <input type=checkbox name=mm value=d><br>
    <input type=checkbox name=mm value=e><br><br>
    <input type=checkbox name=mmAll onclick="checkAll(this,'mm')">全选与不全选的切换
    <input type=checkbox name=mmAll onclick="selectOther('mm')">反选
      

  3.   

    错误 2 “object”不包含“Enabled”的定义,并且找不到可接受类型为“object”的第一个参数的扩展方法“Enabled”(是否缺少 using 指令或程序集引用?) C:\Documents and Settings\Administrator\桌面\list\list\Form1.cs 52 38 list这就是你试过的 ????
      

  4.   

    谢谢
    我要的是enable功能 不是 check 
      

  5.   


    asp:CheckBoxList ID="CheckBoxList1" runat="server" RepeatDirection="Horizontal"> 
                <asp:ListItem Enabled=false>a </asp:ListItem> 
                <asp:ListItem>b </asp:ListItem> 
                <asp:ListItem>c </asp:ListItem> 
                <asp:ListItem>d </asp:ListItem> 
    a的那种效果?
      

  6.   


        /// <summary>
        /// 多选框默认值
        /// </summary>
        /// <param name="value"></param>
        protected void bindCheck(string value)
        {
            string[] team = value.Trim(',').Split(',');
            if (team.Length > 0)
            {
                for (int i = 0; i < cbl.Items.Count; i++)
                {
                    for (int j = 0; j < team.Length; j++)
                    {
                        if (cbl.Items[i].Value == team[j])
                            cbl.Items[i].Selected = true;
                    }
                }
            }
        }
        /// <summary>
        /// 获得多选项的值
        /// </summary>
        /// <returns></returns>
        protected string getCheckValue()
        {
            string str = "";
            for (int i = 0; i < cbl.Items.Count; i++)
            {
                if (cbl.Items[i].Selected)
                    str += cbl.Items[i].Value+",";
            }
            str = str.Trim(',');
            if (str != "")
                str = "," + str + ",";
            return str;
        }
      

  7.   

    再说下 是 CheckedListBox 子项 的 enabled 属性 谢谢了 
      

  8.   


    两种方法
    1
    cbl.Items[4].Enabled=false;
    2
     <asp:CheckBoxList ID="cbl" runat="server" OnSelectedIndexChanged="cbl_SelectedIndexChanged">    protected void cbl_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cbl.Items[4].Selected)
                cbl.Items[4].Selected = false;
        }
      

  9.   


    asp:CheckBoxList ID="CheckBoxList1" runat="server" RepeatDirection="Horizontal"> 
                <asp:ListItem Enabled=false>a </asp:ListItem> 
                <asp:ListItem>b </asp:ListItem> 
                <asp:ListItem>c </asp:ListItem> 
                <asp:ListItem>d </asp:ListItem> 
    这个不对么?...是把 <asp:ListItem Enabled=false>a </asp:ListItem>  禁用了啊..
      

  10.   

    不好意思 一个前提是 我的checkedListBox的子项 是 String 的对象 
    比如for (int i = 0; i < 5; ++i)
                    this.checkedListBox1.Items.Add( DateTime.Now.ToString() );
      

  11.   

    再就是 环境是 2008  上面那个 CheckBoxList1.Items[0].Enabled = false; CheckBoxList1 是 CheckedListBox 么?反正我这build就没过 
      

  12.   

    自己写一个吧
    用panel容器实现,将panel的autoScroll设置为真,使其当其包含的控件对象超出边界时,自动出现滚动条
    然后在panel内添加checkbox,纵向排例 checkbox对象.Location = new System.Drawing.Point(x, y);定位设置有效或无效或取值:
    ((CheckBox)this.panel容器名.controls[i]).checked
    ((CheckBox)this.panel容器名.controls[i]).Enabled
    i为checkbox在panel中出现的次序(与checklistbox中序号用法相同)
    与单个的CHECKBOX应用没有区别
      

  13.   

    checkedListBox1.Items[0].checked=false;
      

  14.   

    vs2005中好像 勾中某项 
    checkedListBox1.Items[0].checked=false; ( 这种不行哦)应该用这种:
    checkedListBox1.Items[0].checked=false;
      

  15.   

    不好意思啊,发错了,应该是:vs2005中好像 checkedListBox1中勾中某项 
    checkedListBox1.Items[0].checked=false; ( 这种不行哦) 应该用这种: 
     checkedListBox1.SetItemChecked(i, true);
      

  16.   


    纠结了很久,最终还是决定自己用panel加checkbox实现,也很简单