2016-12-08 1 views
0
private void btnNext_Click(object sender, EventArgs e) 
     { 
      int i = 0; 
      nameTxtBox.Text = employee[i].name; 
      addTxtBox.Text = employee[i].address; 
      payTxtBox.Text = ($"{employee[i].CalcSalary():c}"); 
      i++; 

     } 

내가하려는 것은 객체 배열 employee의 각 객체에 대한 적절한 값을 다음 버튼을 누를 때마다 표시하는 것입니다. 어떻게해야합니까?텍스트 상자에 텍스트를 변경하고 같은 버튼으로 표시

+2

'i' 변수는 메소드에 로컬이므로 실행될 때마다 다시 초기화됩니다. 반원으로 만들어라. – BradleyDotNET

답변

1

코드가 거의 맞지만, i 변수가 잘못된 범위에 정의되었습니다. 각 버튼 클릭 사이에 이전 값이 유지되도록 클래스의 필드 여야합니다.

private int i = 0; 

private void btnNext_Click(object sender, EventArgs e) 
{ 
     nameTxtBox.Text = employee[i].name; 
     addTxtBox.Text = employee[i].address; 
     payTxtBox.Text = ($"{employee[i].CalcSalary():c}"); 
     i++; 
     // Add logic to make sure 'i' does not go higher than 
     // the total number of items in the array or IndexOutOfBoundException occurs. 
} 
관련 문제