2014-11-07 75 views
0

我有一個檢查列表框,如果我檢查它上面的項目,它將顯示列表框上的選中項目,但僅當該項目存在於數據庫表格上時才顯示。一切工作正常,除非數據不在表格中,複選框仍然被選中。這是我的代碼VB.Net取消選中checkedlistbox中的選定索引

Private Sub CheckedListBox1_ItemCheck(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemCheckEventArgs) Handles CheckedListBox1.ItemCheck 

If e.NewValue = CheckState.Checked Then 
    'Database Query here 

    If data is on table then 
     Listbox1.items.add(CheckedListBox1.SelectedItem.ToString) 
    Else 
     CheckedListBox1.SetItemCheckState(CheckedListBox1.SelectedIndex, CheckState.Unchecked) 
     'Unchecking the checked checkbox because data isn't on the table, i'm having problems here, the checkbox remains checked. 
    end if 

Else 

    Listbox1.items.remove(CheckedListBox1.SelectedItem.ToString) 

End if 

end sub 
+0

看你的代碼,這甚至不會編譯除非你把‘如果數據是表,則’只是爲了解釋的目的呢?我仍然對你想要發生什麼以及你卡在哪裏感到困惑? – Codexer 2014-11-07 04:05:17

回答

1

處理CheckedListBox1.ItemCheck事件的CheckedListBox1_ItemCheck方法。

而不是試圖單擊的項目SetItemCheckState,請嘗試使用傳入方法參考:

e.NewValue = CheckState.Unchecked 

此外,而不是指的SelectedItem,你可能是最好的,以確保您「再得到從項目這是檢查值:

CheckedListBox1.Items(e.Index).ToString()