2011-12-21 82 views
0

我有一些C#代碼如下。問題是,當我試圖從列表框中刪除它會引發錯誤。我知道這不是做這件事的最好方法。這是爲了學校,我只允許使用數組。只是尋找一些輸入。錯誤是indexofofrange。嘗試刪除名稱時發生問題。C#Indexoutofrange Arrays學校項目錯誤

private void deletebtn_Click(object sender, EventArgs e) 
{ 
    addressbook[lstContacts.SelectedIndex].firstnamestring = ""; 
    addressbook[lstContacts.SelectedIndex].lastnamestring = ""; 
    addressbook[lstContacts.SelectedIndex].addressstring = ""; 
    addressbook[lstContacts.SelectedIndex].citystring = ""; 
    addressbook[lstContacts.SelectedIndex].statestring= ""; 
    addressbook[lstContacts.SelectedIndex].zipcodestring = ""; 

    firstname.Text = "Add a new Contact"; 
    lastname.Text = ""; 
    streetaddy.Text = ""; 
    city.Text = ""; 
    state.Text = ""; 
    zipcode.Text = ""; 

    int listselction = lstContacts.SelectedIndex; 
    string removed = "Remove Contact"; 
    lstContacts.Items.Insert(listselction, removed); 
    lstContacts.Items.RemoveAt(listselction + 1); 
    lstContacts.ClearSelected(); 
    lstContacts.Refresh(); 
} 
+0

刪除時索引超出範圍錯誤表示當前項目不在列表中。運行這個項目,同時調試,看看你想刪除的項目 – Moonlight 2011-12-21 07:37:45

回答

0

在行

lstContacts.Items.RemoveAt(listselction + 1); 

設置斷點,看看哪個值listselction了。然後檢查,如果.Items包含這麼多項目。請記住,索引從0開始。你可能試圖刪除一個大於或等於'.Items.Count - 1'的索引。

+0

我做了一個斷點,我得到了這個輸出: > \t Unit10_C.exe!Unit10_C.Unit10_C.deletebtn_Click(object sender = {Text =「&Delete」}, System.EventArgs e = {X = 30 Y = 16 Button = Left})第98行\t C# – allencoded 2011-12-21 07:40:28

+0

@allencoded:請移動'listselction'的鼠標並查看它具有哪個值。 – Fischermaen 2011-12-21 07:42:01

+0

移動鼠標?不知道你的意思 – allencoded 2011-12-21 07:49:17