我有一個checkedlistbox1,它通過一個帶有folderbrowserdialog的搜索功能來填充。一旦我檢查了一個項目(= XML文件),它會通過調用一個單獨的類來根據特定節點填充列表框。這工作正常。Checkedlistbox:取消選中項目並在新選擇時重新執行動作
我希望接下來做的是當我在checkedlistbox1中選擇另一個項目時,它取消選中先前檢查的項目並再次運行單獨的類以顯示新選定項目的節點。
我的代碼是根據我所做的其他搜索嘗試模糊。請注意我希望它做什麼,這不像我現在有我的代碼,因爲我不希望它在我選擇另一個項目時拋出錯誤。我只是想讓它取消選擇上一個,然後再次對新選擇的項目執行操作。
我希望有人能幫我解決這個問題。
代碼:
Try
Dim checkLstBox As CheckedListBox = CType(sender, CheckedListBox)
Dim targetNum As Integer = 1
If e.NewValue = CheckState.Checked AndAlso checkLstBox.CheckedItems.Count + 1 > targetNum Then
Call ClsMessageBoxes.CheckedListbox1_maxcheck_Form2()
e.NewValue = CheckState.Unchecked
For i As Integer = 0 To f5.CheckedListBox1.Items.Count - 1
f5.CheckedListBox1.SetItemChecked(i, False)
Next 'This part at least throws an error if I select a new item in checkedlistbox1 and de-selects the previous item'
Else
'this part does not work'
f5.ListBoxDestPlate.Items.Clear()
f5.CheckedListlistbox2.SelectedItems.Clear()
'this part is meant to select an item in another checkbox according to certain tekst in the filename'
Dim i As Integer
If ClsSharedProperties2.filePath2.Contains("Text1") Then
i = 1
f5.Checkedlistbox2.SetItemChecked(i, True)
Call ClsScan.scanning2()
ElseIf ClsSharedProperties2.filePath2.Contains("Text2") Then
i = 2
f5.Checkedlistbox2.SetItemChecked(i, True)
Call ClsScan.scanning2()
End If
End If
Catch ex As Exception
MessageBox.Show(ex.Message & vbCrLf & "Stack Trace: " & vbCrLf & ex.StackTrace)
End Try
'我沒有有用的代碼'當然可以。發佈你最近的努力。它將幫助任何想回答的人理解這個問題。請閱讀[問]並參加[tour] – Plutonix
謝謝Plutonix。我現在添加了代碼。 – Woudi