DevExpress下拉多选框 CheckComboboxEdit、CheckedListBoxControl

CheckComboboxEdit

         

          //清空项
            checkedComboBoxEdit1.Properties.Items.Clear();

            //自定义数组
            string[] strs=new string[]{"新建","审批中","已完成","已撤销"};
            //添加项
            checkedComboBoxEdit1.Properties.Items.AddRange(strs);

            //设置选中状态
            if(checkedComboBoxEdit1.Properties.Items.Count>0){
                //设置选中状态
                checkedComboBoxEdit1.Properties.Items[strs[0]].CheckState = CheckState.Checked;
                //设置选项是否可用
                checkedComboBoxEdit1.Properties.Items[strs[0]].Enabled = false;
            }
            //取值
            checkedComboBoxEdit1.EditValue.ToString();
            //获取各项值 放在List集合中
            List<object> List = checkedComboBoxEdit1.Properties.Items.GetCheckedValues();

            //注意 当取得值是多项时,各项之间的间隔是 英文状态下 逗号+空格
            //转换方法
            string result = checkedComboBoxEdit1.EditValue.ToString().Replace(", ", ",");

            //是否显示 确定、取消按钮
            checkedComboBoxEdit1.Properties.ShowButtons = false;
            //是否显示 取消按钮
            checkedComboBoxEdit1.Properties.ShowPopupCloseButton = false;

            //下拉显示项的个数 (设置为下拉个数加1正好可以显示全部,因为有一行是全选项)
            checkedComboBoxEdit1.Properties.DropDownRows = checkedComboBoxEdit1.Properties.Items.Count + 1;

CheckedListBoxControl

        

          //自定义一个表
            DataTable dt = new DataTable();
            dt.Columns.Add("ID");
            dt.Columns.Add("Name");
            dt.Columns.Add("Sex");
            for (int i = 0; i < 30; i++) {
                DataRow dr = dt.NewRow();
                dr["ID"] = i + 1;
                dr["Name"]=Convert.ToString((char)(65+i))+Convert.ToString((char)(65+i));
                dr["Sex"] = i % 2==0?"男":"女";
                dt.Rows.Add(dr);
            }
            //清空项
            checkedListBoxControl1.Items.Clear();

            //绑定
            checkedListBoxControl1.DataSource = dt;
            checkedListBoxControl1.ValueMember = "ID";
            checkedListBoxControl1.DisplayMember = "Name";

            //全选
            //checkedListBoxControl1.CheckAll();

            //项的个数
            int itemCount = checkedListBoxControl1.ItemCount;

            //添加项(如果设置绑定,添加项无效)
            checkedListBoxControl1.Items.Add("kk");

            //设置选中状态、显示值、实际值、是否可用(如果设置绑定,这些将会无效)
            checkedListBoxControl1.Items[0].CheckState = CheckState.Checked;
            checkedListBoxControl1.Items[0].Description = "显示值";
            checkedListBoxControl1.Items[0].Value = "实际值";
            checkedListBoxControl1.Items[0].Enabled = false;
            //效果和上面一样
            checkedListBoxControl1.SetItemChecked(0, true);
            checkedListBoxControl1.SetItemCheckState(0, CheckState.Checked);
            checkedListBoxControl1.SetItemValue("实际值",0);           

            //是否被勾选
           bool isChecked=  checkedListBoxControl1.GetItemChecked(0);
            //获取某项状态
           string checkState = checkedListBoxControl1.GetItemCheckState(0).ToString();
            //获取某项绑定值 valueMember
           string trueValue = checkedListBoxControl1.GetItemValue(0).ToString();
            //获取某项显示值   displayMember
           string disValue = checkedListBoxControl1.GetDisplayItemValue(0).ToString();
           string disValue2 = checkedListBoxControl1.GetItemText(0);

            //是否点击一次 就改变状态
           checkedListBoxControl1.CheckOnClick = true;

            //是否多列显示
           checkedListBoxControl1.MultiColumn = true;

            //checkedListboxControl 是否获得焦点
           bool isfocus=checkedListBoxControl1.ContainsFocus;

           //实现单选功能
            checkedListBoxControl1.SelectedIndexChanged += new EventHandler(checkedListBoxControl1_SelectedIndexChanged);
          
            //获取选中项的绑定值(前提:手动添加的可以获取,但是datatable绑定的无法获取)
           List<object> objList = checkedListBoxControl1.Items.GetCheckedValues();

       void checkedListBoxControl1_SelectedIndexChanged(object sender, EventArgs e)
        {
            int index=checkedListBoxControl1.SelectedIndex;
            for (int i = 0; i < checkedListBoxControl1.ItemCount; i++) {
                if (i != index)
                {
                    checkedListBoxControl1.SetItemChecked(i, false);
                }
            }
        }

 #region public static void SetComboBoxData(DevExpress.XtraEditors.ImageComboBoxEdit comboBox,List<T> list, string valueMember, string displayMember, string selectedText = null)
        /// <summary>
        /// 绑定下拉框
        /// </summary>
        /// <param name="comboBox">下拉控件</param>
        /// <param name="List<T> ">实体集合</param>
        /// <param name="valueMember">值字段</param>
        /// <param name="displayMember">显示字段</param>
        /// <param name="selectedText">默认选中的值</param>
        public static void SetComboBoxData<T>(DevExpress.XtraEditors.ImageComboBoxEdit comboBox, List<T> list, string valueMember, string displayMember, string selectedText = null)//
        {
            comboBox.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor;
            comboBox.Properties.NullText = string.Empty;
         
            foreach (var item in list)
            {
                comboBox.Properties.Items.Add(new ImageComboBoxItem(item.GetType().GetProperty(valueMember).GetValue(item, null).ToString(), item.GetType().GetProperty(valueMember).GetValue(item, null).ToString()));
            }

            // //这里是设置默认选中的值
            if (!string.IsNullOrEmpty(selectedText))
            {
                comboBox.SelectedItem = comboBox.Properties.Items.GetItem(selectedText);
            }
        }
        #endregion

 http://www.cnblogs.com/spring_wang/archive/2013/05/11/3072640.html

https://blog.csdn.net/xiaoyu812289718/article/details/43017755

https://blog.csdn.net/u013816709/article/details/48159309

原文地址:https://www.cnblogs.com/shy1766IT/p/9118321.html