看板 C_Sharp 關於我們 聯絡資訊
※ [本文轉錄自 C_and_CPP 看板] 作者: tylerfirst (......) 看板: C_and_CPP 標題: [問題] C# 刪除listbox中複數項的問題 時間: Fri Oct 30 23:27:22 2009 如題,小弟用C#想設計一個button 此button按下的同時,會將listbox中選取的項目刪除 程式碼如下: private void button5_Click(object sender, EventArgs e) { if (listBox1.SelectedIndex != -1) { foreach (int select_Index in listBox1.SelectedIndices) { listBox1.Items.RemoveAt(select_Index); } } } 跑出來的結果很奇怪= =" 如果選兩項,則只會刪除index比較前面的 如果選兩項以上,則會"隔項刪除".....意思就是選第一,二,四項卻只會刪掉一,四項 怎麼出現這種怪現象啊orz 我有試過把RemoveAt拿掉,單純用MessageBox顯示抓到的項數,結果是正常的 有想過會不會因為是Remove的關係導致程式抓的Index亂掉... 請板上前輩們指點一下 3Q<(_ _)> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.173.164.170
tiyun:請至C_Sharp 10/30 23:37
VictorTom:C#板在樓下啊XDDD 10/30 23:37
tylerfirst:啊 抱歉XD 因為我的最愛都放在一起... 10/30 23:40
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.173.164.170
liaommx:如果是因為remove的話,那為什麼1,2,4只刪除1,4?..XD 10/30 23:52
liaommx:為什麼不是刪除1,5?:P 10/30 23:52
tylerfirst:我也不知道= = 但是把remove拿掉又正常...我也只能想到 10/31 00:24
tylerfirst:是remove的關係了... 10/31 00:24
EricTsai:請用for,foreach不應該變動集合 10/31 00:25
EricTsai:不過這樣說好像沒解決問題...Remove之後index的確就變了 10/31 00:28
fphoenix923:你需要從後面刪回來,因為刪完後Index會重排 10/31 00:58
tylerfirst:解決了! 非常感謝~ 10/31 08:55