본문 바로가기
C#/DevExpress

DevExpress / Winform CheckedComboBoxEdit에 열겨형 값 표시하기.

by HyunS_ 2019. 4. 17.

CheckedComboBoxEdit에 열겨형 값을 표시할 수 있습니다.

 

using DevExpress.XtraEditors;
using System;
using System.Windows.Forms;

namespace WindowsFormsApp4
{
	public partial class Form1 : Form
	{

        /// <summary>
        /// Color 열거형 입니다.
        /// </summary>
        enum MyColors
        { 
            None   = 0x00,
            Black  = 0x01,
            White  = 0x02,
            Blue   = 0x04,
            Yellow = 0x08,
            Green  = Blue | Yellow
        }

        #region Form1()

        /// <summary>
        /// 생성자 입니다.
        /// </summary>
        public Form1()
        {
            InitializeComponent();

            this.checkedComboBoxEdit1.Properties.SetFlags(typeof(MyColors));

            RemoveCombinedFlags(this.checkedComboBoxEdit1);

            this.checkedComboBoxEdit1.SetEditValue(MyColors.Black | MyColors.Green);
        }

        #endregion

        #region RemoveCombinedFlags(checkedComboBoxEdit)

        /// <summary>
        /// 복합 플래그에 해당하는 항목을 제거합니다.
        /// </summary>
        /// <param name="checkedComboBoxEdit">CheckedComboBoxEdit 입니다.</param>
        private void RemoveCombinedFlags(CheckedComboBoxEdit checkedComboBoxEdit)
        {
            for (int i = checkedComboBoxEdit.Properties.Items.Count - 1; i > 0; i--)
            {
                Enum value1 = checkedComboBoxEdit.Properties.Items[i].Value as Enum;

                for (int j = i - 1; j >= 0; j--)
                {
                    Enum value2 = checkedComboBoxEdit.Properties.Items[j].Value as Enum;
                    if (value1.HasFlag(value2))
                    {
                        checkedComboBoxEdit.Properties.Items.RemoveAt(i);
                        break;
                    }
                }
            }
        }
    
		#endregion
	}
}
728x90

댓글