在非编辑模式下,我需要用户能够浏览列表(滚动等),但无法选中复选框。
如果我执行checkedboxlist.enabled = false
,则整个列表将被禁用。只有我需要禁用复选框,以便用户不以非编辑模式进行交互(以编辑方式)。
修改 我只是将字符串列表分配给checkedboxlist的数据源。
this.UserSelectedMsgTypes.DataSource = userSelectedMsgs;
this.UserAvailableMsgTypes.DataSource = availableMsgTypeList;
目前通过
启用/禁用整个列表 this.UserSelectedMsgTypes.Enabled = true/false;
this.UserAvailableMsgTypes.Enabled = true/false;
我之前尝试过@James解决方案,但是没有用。因为不管怎样,即使有物品,'ItemCount'也是0。在数据源中,它显示有6个项目,但在列表中显示为0。
答案 0 :(得分:0)
试试这个:
foreach (DevExpress.XtraEditors.Controls.CheckedListBoxItem item in checkedListBoxControl1.Items)
{
item.Enabled = false;
}
答案 1 :(得分:0)
这是一个肮脏的工作,但这怎么样?
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;
}
}
致电:
checkedListBoxControl1.Items.AddRange(GetCheckItems(new string[] {"test1","test2","test3"}).ToArray());
然后使用foreach循环应用第一个答案(或在GetCheckItems方法中设置ENabled = false)。