2010-04-24 3 views
1
private void displayResultsButton_Click(object sender, EventArgs e) 
    { 
     gameResultsListView.Items.Clear(); 

     //foreach (Game game in footballLeagueDatabase.games) 
     //{ 
      ListViewItem row = new ListViewItem(); 
      row.SubItems.Add(game.HomeTeam.ToString()); 
      row.SubItems.Add(game.HomeScore.ToString()); 
      row.SubItems.Add(game.AwayTeam.ToString()); 
      row.SubItems.Add(game.AwayScore.ToString()); 
      gameResultsListView.Items.Add(row); 
     // } 
     //footballLeagueDatabase.games.Sort(); 
    } 
    } 
} 

이것은 표시 버튼이며 다음 코드는 추가 버튼에 대해 설명합니다.C# 목록보기에 데이터 표시

private void addGameButton_Click(object sender, EventArgs e) 
    { 
     if ((homeTeamTxt.Text.Length) == 0) 
      MessageBox.Show("You must enter a Home Team"); 
     else if (homeScoreUpDown.Maximum <= 9 && homeScoreUpDown.Minimum >= 0) 
      MessageBox.Show("You must enter one digit between 0 and 9"); 
     else if ((awayTeamTxt.Text.Length) == 0) 
      MessageBox.Show("You must enter a Away Team"); 
     else if (awayScoreUpDown.Maximum <= 9 && awayScoreUpDown.Minimum >= 0) 
      MessageBox.Show("You must enter one digit between 0 to 9"); 
     else 
     { 
      //checkGameInputFields(); 
      game = new Game(homeTeamTxt.Text, int.Parse(homeScoreUpDown.Value.ToString()), awayTeamTxt.Text, int.Parse(awayScoreUpDown.Value.ToString())); 
      MessageBox.Show("Home Team" + 't' + homeTeamTxt.Text + "Away Team" + awayTeamTxt.Text + "created"); 
      footballLeagueDatabase.AddGame(game); 

      //clearCreateStudentInputFields(); 
     } 
    } 

위의 텍스트 필드에 데이터를 삽입하고 숫자 위로 컨트롤을 내려 목록보기에 표시해야합니다. 하지만 "표시 결과"버튼을 누르면 오류 메시지가 표시되므로 수행 방법을 모릅니다.

목록보기에서 데이터를 표시하는 방법을 알고 있다면 알려주십시오. 목록보기를 처음 사용합니다.

+0

무엇이 오류입니까? –

+0

응용 프로그램에서 처리되지 않은 예외가 발생했습니다. 계속을 클릭하면 응용 프로그램에서이 오류를 무시하고 계속 시도합니다. 종료를 클릭하면 응용 프로그램이 즉시 닫힙니다. 개체 참조가 개체의 인스턴스로 설정되지 않았습니다. 오류 메시지 – Leo

+1

오류가 발생한 줄은 무엇입니까? – Heinzi

답변

2

지정한 오류 메시지에 따라 하위 항목을 만드는 데 사용하는 게임 개체가 인스턴스화되지 않는다고 문제가 있다고 생각됩니다. 이 개체를 만든 foreach를 주석 처리 한 것으로 나타났습니다. 따라서 게임이라는 객체를 만들어야합니다.

이외에도 데이터 표시 방법을 지정하지 않았습니다. 모든 하위 항목을 한 행에 표시하려면 열을 추가해야합니다. 디자이너를 사용하여이 작업을 이미 완료 한 경우는 예외입니다. 그렇지 않으면 코드가 다음과 같이되어야합니다.

private void displayResultsButton_Click(object sender, EventArgs e) { 
    Game game = new Game("Home", 10, "Away", 12); 

    gameResultsListView.Items.Clear(); 
    //You need this so that the subitems are also displayed, otherwise 
    //only the main item will show in the listview 
    gameResultsListView.View = View.Details; 

    ListViewItem row = new ListViewItem("Game 1"); 
    row.SubItems.Add(game.HomeTeam.ToString()); 
    row.SubItems.Add(game.HomeScore.ToString()); 
    row.SubItems.Add(game.AwayTeam.ToString()); 
    row.SubItems.Add(game.AwayScore.ToString()); 

    //The main item and each subitem get a column in the listView 
    gameResultsListView.Columns.Add("Game", -2, HorizontalAlignment.Left); 
    gameResultsListView.Columns.Add("HomeTeam", -2, HorizontalAlignment.Left); 
    gameResultsListView.Columns.Add("HomeTeamScore", -2, HorizontalAlignment.Left); 
    gameResultsListView.Columns.Add("AwayTeam", -2, HorizontalAlignment.Left); 
    gameResultsListView.Columns.Add("AwayTeamScore", -2, HorizontalAlignment.Left); 

    gameResultsListView.Items.Add(row); 
} 

맨 위에 게임 개체를 어떻게 생성하는지 유의하십시오. 위의 코드가 작동하면 게임 객체가 원래 코드에서 인스턴스화되지 않는 문제가있었습니다. 문제가이 기능에 없다는 것을 알면 적어도 작동합니다. 또한 IDE에서 응용 프로그램을 테스트하고 있습니까? 사용자가 표시 한 것보다 많은 메시지를 가져와야하고 문제를 일으키는 행으로 연결될 것이기 때문에 응용 프로그램을 테스트하고 있습니까?

+0

이 설명을 잘 주셔서 감사합니다. 그리고 게임을 삽입하려고하면 같은 MainMenu.cs 파일의 다음 코드에 대해 동일한 오류가 발생합니다. 그럴 필요는 없습니다. 두 번째 주석과 같은 코드를 사용합니다. 다음 공간만으로는 충분하지 않습니다. – Leo

+0

private void addGameButton_Click (object sender, EventArgs e) { 이 코드는 주석으로 처리 할 수 ​​없지만 첫 번째 질문에서는이 코드를 주석으로 처리합니다.다음과 같이 두 줄을 변경했습니다. else (homeScoreUpDown.Value> 9 || homeScoreUpDown.Minimum <0) MessageBox.Show ("0-9 사이의 한 자리를 입력해야합니다."); else if (homeScoreUpDown.Value> 9 || homeScoreUpDown.Value <0) MessageBox.Show ("0에서 9 사이의 한 자리 숫자를 입력해야합니다."); 어디에서 오류가 발생했는지 설명해 주시겠습니까? – Leo

+0

@Kumu 오류에 대해 좀 더 자세히 설명해 줄 수 있습니까? 이제 addGameButton을 클릭 한 직후 참조 오류가 발생합니까? 또는 displayReultsButton에서 게임을 만드는 선을 제거하고 addGameButton을 사용하여 게임을 만든 다음 displayResultsButton을 클릭하면 어떻게 되나요? 원래 질문을 업데이트해야 코드가 어떻게 보이는지 알 수 있습니다. addGameButton에 중단 점을 넣고 오류가 발생한 부분을 확인하십시오. 그러면 오류가 어디에 있는지 쉽게 알 수 있습니다. –

관련 문제