using DevExpress.XtraEditors.Controls; namespace Yw.WinFrmUI { /// /// /// public partial class StringListCheckedListBoxCtrl : DevExpress.XtraEditors.XtraUserControl { /// /// /// public StringListCheckedListBoxCtrl() { InitializeComponent(); } /// /// 初始化 /// public void Initial(List strList) { this.ckListBox.BeginUpdate(); this.ckListBox.Items.Clear(); strList?.ForEach(x => CreateItem(x)); this.ckListBox.EndUpdate(); } /// /// 选择 /// public void Select(List strList) { foreach (CheckedListBoxItem item in this.ckListBox.Items) { if (strList != null && strList.Count > 0) { if (strList.Contains(item.Value.ToString())) { item.CheckState = CheckState.Checked; } else { item.CheckState = CheckState.Unchecked; } } } } /// /// 获取 /// public List Get() { var list = new List(); foreach (CheckedListBoxItem item in this.ckListBox.Items) { if (item.CheckState == CheckState.Checked) { var str = item.Value.ToString(); list.Add(str); } } return list; } //创建项 private void CreateItem(string str) { var item = new CheckedListBoxItem(); item.Description = str; item.Value = str; item.Tag = str; item.CheckState = CheckState.Unchecked; this.ckListBox.Items.Add(item); } } }