2014-05-14 2 views
-2

groupbox이있는 컨트롤 목록이 있는데 여기에 TextBox, ComboBox, CheckBox이 있습니다.특정 컨트롤에 컨트롤 목록 가져 오기

nececito를 구별하고이 코드로 테스트 한 각 컨트롤의 이름을 가져올 때.

private void btnGuardar_Click(object sender, EventArgs e) 
    { 
     List<Control> lstControles = 
      new List<Control>(groupBox1.Controls.OfType<Control>().OrderBy(x => x.Name)); 

     TextBoxUniversal txt = new TextBoxUniversal(); 
     EntitySelectorCombo cbo = new EntitySelectorCombo(); 
     CheckBox chk = new CheckBox(); 

     foreach (var item in lstControles) 
     { 
      if(txt == item.Controls.OfType<TextBoxUniversal>()) 


      if (cbo == item.Controls.OfType<EntitySelectorCombo>()) 

      if (chk == item.Controls.OfType<CheckBox>()) 

     } 
+2

환영에 StackOverflow에! 당신이 묻는 것을 결정하는 것은 어렵습니다. 당신의 질문은 무엇입니까? 전체 게시물을 영어로도 번역하십시오. – BradleyDotNET

답변

1

당신은 (당신의 코드는 항상 false 결과를 반환 참조하여 새로이 초기화 된 객체와 함께 목록에서 각 개체를 비교) 그 길을 잘못했다.

는 개체 유형 호환성을 확인하는 is 연산자를 사용해보십시오 :

foreach (var item in lstControles) 
{ 
    if(item is TextBoxUniversal) 
     ....... 

    if (item is EntitySelectorCombo) 
     ....... 

    if (item is CheckBox) 
     ....... 
} 
+0

나는 코드를 테스트 할 것이고, 나는 이메일에 대한 답을 묻는 질문을 설정했다. –

관련 문제