Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何仅禁用devexpress的复选框(而不是完整的复选框列表)?_C#_Winforms_Devexpress - Fatal编程技术网

C# 如何仅禁用devexpress的复选框(而不是完整的复选框列表)?

C# 如何仅禁用devexpress的复选框(而不是完整的复选框列表)?,c#,winforms,devexpress,C#,Winforms,Devexpress,在非编辑模式下,我需要用户能够浏览列表(滚动等),但不能选择复选框 如果我执行了checkedboxlist.enabled=false,则整个列表将被禁用。我只需要禁用复选框,这样用户就不会在非编辑模式下进行交互(以编辑方式) 编辑 我只是将字符串列表分配给checkedboxlist的数据源 this.UserSelectedMsgTypes.DataSource = userSelectedMsgs; this.UserAvailableMsgTypes.D

在非编辑模式下,我需要用户能够浏览列表(滚动等),但不能选择复选框

如果我执行了
checkedboxlist.enabled=false
,则整个列表将被禁用。我只需要禁用复选框,这样用户就不会在非编辑模式下进行交互(以编辑方式)

编辑 我只是将字符串列表分配给checkedboxlist的数据源

        this.UserSelectedMsgTypes.DataSource = userSelectedMsgs;
        this.UserAvailableMsgTypes.DataSource = availableMsgTypeList;
当前通过执行以下操作启用/禁用整个列表

        this.UserSelectedMsgTypes.Enabled = true/false;
        this.UserAvailableMsgTypes.Enabled = true/false;
我之前试过@James solution,没用。因为即使存在项目,“ItemCount”也不知何故为0。在数据源中显示有6项,但在列表中显示为0。

尝试以下操作:

    foreach (DevExpress.XtraEditors.Controls.CheckedListBoxItem item in checkedListBoxControl1.Items)
    {
        item.Enabled = false;
    }

这是一个有点脏的工作,但是这个怎么样

private IEnumerable<DevExpress.XtraEditors.Controls.CheckedListBoxItem> GetCheckItems(string[] myStringArray)
{
    foreach(string s in myStringArray)
    {
        DevExpress.XtraEditors.Controls.CheckedListBoxItem item = new DevExpress.XtraEditors.Controls.CheckedListBoxItem();
        item.Description = s;
        yield return item;
    }
}

然后用foreach循环应用第一个答案(或在GetCheckItems方法中设置ENabled=false)。

它是否具有可编辑(或可编辑)属性?通常这个道具应该是正确的选择。你的.aspx页面目前有什么代码,请分享这个小部分。它的winforms代码。请看问题中的编辑我试过了,不起作用。因为即使存在项目,“ItemCount”也不知何故为0。在数据源中,它显示有6个项目,但在列表中,它显示了0。您的数据源是什么样子的?我认为dev express控件中有一个bug,因为正如您所说的,数据源设置在列表中产生了0个项目,这显然不太正确。
checkedListBoxControl1.Items.AddRange(GetCheckItems(new string[] {"test1","test2","test3"}).ToArray());