|
Question : Loop through and delete an item from a combo box
|
|
I set up a combo box in VB.NET CF using the following code:
sql = "Select ColGUID, Collector From Collectors" (this is WAY over simplified, but the number of columns and the type of data is the same)
Dim ds As New DataSet Dim da As New SqlCeDataAdapter(sql, MainForm.conn) da.Fill(ds, "Collectors")
If ds.Tables(0).Rows.Count < 1 Then MsgBox("All of the dust collectors in this location have been recorded today", MsgBoxStyle.OkCancel) da.Dispose() ds.Dispose() MainForm.G.ExitApp(True) End If
With cboCollector .DataSource = ds.Tables("Collectors") .DisplayMember = "Collector" .ValueMember = "ColGUID" End With da.Dispose() ds.Dispose() cboCollector.Enabled = True
Now I would like to go back and iterate through each "line" in the combobox and delete items based on a specific criteria ... for example, I would like to do something like this:
With each item in cboCollector If condition true then DeleteItem End With
I've looked at different examples and none of them seem to work ... is this even possible with compact framework? I've tried to exclude the itmes by being creative with my sql statement, but the sql command is just too darn complicated and I can't make it work. The item(s) I want to delete are really simple to find after the combobox is populated.
|
|
Answer : Loop through and delete an item from a combo box
|
|
The normal method is to have a class level boolean variable (ie, declared outside all procedures), and set it to true when deleting the item/s....
Private Deleting As Boolean
...then set it to true when deleting, and set it back to false when done....
Deleting = True For Each dr As DataRow In CType(cboCollector.DataSource, DataTable).Rows If dr("ColGUID") = "whatever" Then dr.Delete() End If Next Deleting = False
...and then in the SelectedIndexChanged event, use this line to exit the sub....
If Deleting Then Exit Sub
Wayne
|
|
|
|