2017-12-02 8 views
-1

동적으로 생성 된 모든 usercontrol의 가격 (레이블)을 추가하고 winform의 레이블로 설정하려면 어떻게해야합니까? 이미지가 더의 WinForm 에서 확인 버튼을 클릭하여이 코드를 시도했지만이 레이블을 추가하지 않았고 출력이 항상 여기에 0 입니다 : https://imgur.com/a/ViPGt 이 내 코드입니다 : 내가 생각#SOLVED 모든 동적으로 생성 된 usercontrols에서 텍스트 상자를 얻으십시오

private void add_Click(object sender, EventArgs e) 
    { 
     double g = 0; 
     foreach (Control ctrl in Controls) 
     { 
      if (ctrl is DynaItems) 
      { 
       var myCrl = ctrl as DynaItems; 
       g += Convert.ToInt32(myCrl.price.Text); 
      } 
     } 
     textBox1.Text = g.ToString(); 
    } 
+0

디버그에서 단계별로 실행하면 반드시 ... 코드에서 나는 또한이 코드를 시도 –

+0

을 잘못된 가정을 발견하는 데 도움이됩니다하지만이 작동하지 않았다 –

+0

VAR g = 0; foreach (컨트롤의 컨트롤 Ctrl) { (ctrl이 DynaItems 인 경우) { var myCrl = ctrl as DynaItems; g + = Convert.ToInt32 (myCrl.price.Text); } } textBox1.Text = g.ToString(); –

답변

0

이것은 Int32로 변환하는 동안 이중을 원한다는 사실에서 온 것일 수 있습니다. 이 코드를 시도하고 동시에 가격 컨트롤에 Text 속성이 올바른지 확인하십시오.

private void add_Click(object sender, EventArgs e) 
{ 
    double g = 0; 

    // Controls.OfType will automatically find your DynaItems controls and cast them for you 
    foreach (DynaItems dynaItem in Controls.OfType<DynaItems>()) 
    { 
     // Breakpoint here and check the value of dynaItem.price.Text 
     g += double.Parse(dynaItem.price.Text); 
    } 

    textBox1.Text = g.ToString(); 
}