2013-05-21 5 views
1

System.Windows.Forms.Keys에서 A-Z, 0-9 및 F 키만 포함 된 하위 열거 형 목록을 만들려고합니다.다른 열거 형의 특정 값으로 열거 형을 만듭니다.

comboBox1.DataSource = Enum.GetValues(typeof (System.Windows.Forms.Keys));

이 부분 집합을 빠르게 만들 방법이 있나요 : 현재, 나는의 WinForm에 콤보 상자의 전체 목록을 설정?

private List<Keys> acceptableKeys = new List<Keys> 
      { 
       Keys.A, 
       Keys.B, Keys.C, Keys.D, Keys.E, Keys.F, Keys.G, Keys.H, Keys.I, Keys.J, Keys.K, Keys.L, Keys.M, 
       Keys.N, Keys.O, Keys.P, Keys.Q, Keys.R, Keys.S, etc.... 
      }; 

dataSource으로 그것을 사용 : 나의 현재 해결 방법은 허용 키의 목록을 하드 코딩하는 것입니다.

더 좋은 방법이 있습니까?

답변

3

하드 코드하지 않으려면 int 열거 형 값을 확인하고 목록에 추가해보십시오.

var enums = Enum.GetValues(typeof(Keys)); 

List<Keys> acceptableKeys = new List<Keys>(); 
foreach (var e in enums) 
{ 
    int val = (int)e; 
    //The boundaries represent A-Z, 0-9, F1 - F24 respectively 
    if ((val >= 65 && val <= 90) || (val >= 48 && val <= 59) || (val >= 112 && val <= 135)) 
     acceptableKeys.Add((Keys)e); 
} 

숫자 패드에는 숫자가 포함되지 않지만 해당 숫자도 포함하려는 경우 해당 체크를 추가 할 수 있습니다.

+0

완벽하게 작동합니다! 좋은 생각. 감사합니다 :) –

+0

당신은 환영합니다 :) – keyboardP

관련 문제