none
報歉唷~再問一個ListView的CheckBox的問題 RRS feed

  • 問題

  • 請問,要如何判斷 ListView1 裡 Itwm 的 CheckBox 是否有勾選,

     

    如果有勾選,就刪除所有 有勾選的資料,沒有勾選的就沒有刪除

     

    我在 MSDN 裡有找到 ListView1.Items.RemoveAt(0),可以做刪除

     

    可是要怎麼一次就刪除,而且沒勾選的不會刪掉呢?

     

    我在其他討論區有看到

    For i As Integer = 0 To ListView1.Items.Count -1

    If ListView1.Items(i).Checked = True Then

    ......

    End If

    Next

     

    可以判斷有沒有被勾選起來,可是我還是試不出來 >_<

    • 已移動 璉璉 2010年3月13日 上午 02:46 (從:Visual Studio一般討論區(General))
    2008年1月29日 下午 12:57

解答

  •    foreach (ListViewItem lvi in listView1.Items)
       {
           if(lvi.Checked)
           {
               lvi.Remove();
           }
       }

    • 已標示為解答 璉璉 2010年3月13日 上午 02:46
    2008年1月29日 下午 01:46

所有回覆

  • Dear Sir

    你有問題的程式碼是怎麼去做的呢?

     

    2008年1月29日 下午 01:33
  • 嗯..補充一下,如果跑For迴圈去做Remove的動作,因為第一次Remove之後ListView.Item.Count的總數會受到影響,所以迴圈跑到後面可能會發生錯誤;建議是從後面繞回來,例如

     

    Code Snippet
            For i As Integer = ListView1.Items.Count - 1 To 0 Step -1
                If ListView1.Items(i).Checked Then
                    ListView1.Items(i).Remove()
                End If
            Next

     

     

    2008年1月29日 下午 01:40
  •    foreach (ListViewItem lvi in listView1.Items)
       {
           if(lvi.Checked)
           {
               lvi.Remove();
           }
       }

    • 已標示為解答 璉璉 2010年3月13日 上午 02:46
    2008年1月29日 下午 01:46