2013-05-24 1 views
4

이의 내가 열거디스플레이 열거 값이 내부 콤보

public enum MyMode { A = 1, B = 2, C = 3, D = 4 }; 

에게 다음과 같은 것을 가정 해 봅시다 윈폼 내가 콤보 상자 안에 값의 목록으로이 열거를 사용하려면, 나는

cmbMyMode.Items.Add(Enum.GetValues(typeof(MyMode))); 

과 노력하지만 난 ' 다음에 오는 것

MyMode[] Array 

A, B, C, D를 표시해야하며 A, B, C 대신 맞춤 문자열을 사용할 수 있습니다. C, D

감사

답변

12
List<MyMode> modes = Enum.GetValues(typeof(MyMode)).Cast<MyMode>().ToList(); 
cmbMyMode.DataSource = modes; 

그리고 라벨을 사용자 정의 할 수 :

var modes = Enum.GetValues(typeof(MyMode)).Cast<MyMode>().Select(mode => 
        new { Value = mode, Title = string.Format("-->{0}<--", mode) }). 
       ToList(); 
cmbMyMode.ValueMember = "Value"; 
cmbMyMode.DisplayMember = "Title"; 
cmbMyMode.DataSource = modes; 

다음

cmbMyMode.SelectedValue 
+0

@CarlosLanderas 왜 그렇게 생각을? 'C#'태그가 붙어 있습니다 –

+0

내 의견은 Carlos Landeras에게 전달되었습니다. –

+0

@ vc74 위대한 (A, B, C, D)이 같은 줄에 연결된 문자열로 사용할 수 있습니까? – user1765862

3
cmbMyMode.Items.AddRange(Enum.GetNames(typeof(MyMode))); 
1
foreach (var name in Enum.GetNames(typeof(MyMode))) 
{ 
    cmbMyMode.Items.Add(name); 
} 
관련 문제