2011-10-27 6 views
0

私は一緒に従うとYouTubeのAddress Book TutorialYouTubeのチュートリアルは、リストビューの2番目の項目(無効な引数)

にこのアドレス帳のチュートリアルを完了しようとしていますを選択することはできませんが、私は理解していない思わぬ障害に走ってきました。続いて私はコードの違いを見つけることができません。だから私はそれが私が行方不明の不動産設定でなければならないと思っています。私がリストに値を入力するときに、最初の項目を選択することができます。私は2番目の項目を選択すると、デバッガがエラーに

無効な引数を蹴り、このエラーがスローされた理由を「インデックス」

は、誰かが私に言うことができるためではなく=「0」の値が有効ではありませんか?コードの0のように聞こえるビデオを聞くと、一度に1つのアイテムしか選択できないということをリストに伝えることになります。残念ながら、私は彼のコードがなぜ機能しているのかわかりませんでした。

private void button3_Click(object sender, EventArgs e) 
{ 
    person p = new person(); // creates new string array 
    p.Name = textBox1.Text; // name  
    p.StreetAddress= textBox3.Text; // address 
    p.Email = textBox2.Text; // email 
    p.Birthday = dateTimePicker1.Value; //birthday 
    p.AdditionalNotes = textBox4.Text; // any notes 
    people.Add(p); // tells the the above data to be added to the people list. 
    listView1.Items.Add(p.Name); // makes its show on the listview of the main box. 
    textBox1.Text = ""; 
    textBox2.Text = ""; 
    textBox3.Text = ""; 
    textBox4.Text = ""; 
    dateTimePicker1.Value = DateTime.Now; 

} 

private void listView1_SelectedIndexChanged(object sender, EventArgs e) 
{ 

    textBox1.Text = people[listView1.SelectedItems[0].Index].Name; //Debugger points error here. 
    textBox2.Text = people[listView1.SelectedItems[0].Index].Email; 
    textBox3.Text = people[listView1.SelectedItems[0].Index].StreetAddress; 
    textBox4.Text = people[listView1.SelectedItems[0].Index].AdditionalNotes; 
    dateTimePicker1.Value = people[listView1.SelectedItems[0].Index].Birthday; 
} 


class person 
{ 
    public string Name 
    { 
     get; 
     set; 
    } ... 
} 

答えて

1

私はプログラムの作成者と話すことができました。解決策は、選択をチェックして処理しないことです。 If文を追加することで問題が解決されました。

private void listView1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (listView1.SelectedItems.Count == 0) return; // This line added will solve the problem 
    textBox1.Text = people[listView1.SelectedItems[0].Index].Name; 
    textBox2.Text = people[listView1.SelectedItems[0].Index].Email; 
    textBox3.Text = people[listView1.SelectedItems[0].Index].StreetAddress; 
    textBox4.Text = people[listView1.SelectedItems[0].Index].AdditionalNotes; 
    dateTimePicker1.Value = people[listView1.SelectedItems[0].Index].Birthday; 
} 
関連する問題