从多选列表框中删除项目时遇到问题。我会尽力解释我的前端和逻辑。请让我知道获得输出的正确方法。
我需要将新主题添加到列表框中。我可以选择多个项目添加到其中。我有3个列表框第一个列表框是用于持有主要科目。第二个是持有选修科目。我有两个文本框将数据提供给列表框,当按下按钮或输入键时,将添加文本框中的项目。
第三个列表框已停用。它从majorsub和optsubs列表框中获取项目。这意味着如果我添加10个主要科目和5个可选科目,那么第3个列表将保留这15个科目。现在我可以轻松地从一个列表中进行多选并删除它。单独删除不是问题。
我关注的是 - 一旦我从这两个列表中选择了项目并单击删除按钮,它就必须从第三个列表中搜索相同的项目,并将其从此列表中删除。
我该怎么做?请帮助我。
Add items in list 1 Remove items from list 1 and 3
这是用于插入和删除主要的潜艇
Public Sub btnMajSubAdd_Click() Handles btnMajSubAdd.Click
Try
'CODE TO ADD MAJOR SUBJECTS IN TO THE LIST AND THE ALL SUBJECTS LIST
If btnMajSubAdd.Text = "+" Then
If txtMajSubs.Text <> "" Then
lbMajorSubs.Items.Add(Trim(txtMajSubs.Text))
lbAllSubs.Items.Add(Trim(txtMajSubs.Text))
txtMajSubs.Text = ""
txtMajSubs.Focus()
End If
Else
For n As Integer = 0 To lbMajorSubs.SelectedItems.Count - 1
' REMOVE THE CURRENT SELECTED ITEM FROM ITEMS
For i As Integer = 0 To lbAllSubs.Items.Count - 1
If lbAllSubs.Items(i).ToString = lbOptSubs.SelectedItems(n).ToString Then
lbAllSubs.Items.Remove(lbAllSubs.Items(i))
lbMajorSubs.Items.Remove(lbMajorSubs.SelectedItems(n))
i = i - 1
n = n - 1
End If
Next i
Next n
btnMajSubAdd.Text = "+"
txtMajSubs.Focus()
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
答案 0 :(得分:1)
建议的方法是使用模型 - 视图 - 控制器模式。不是将项直接添加到列表框,而是将其添加到集合中,然后使用集合中的项刷新列表框。
在这种特殊情况下,维护两个集合,分别添加主要主题和次要主题。添加新主题后,将其添加到相应的集合中,然后立即刷新列表框。
从列表框中删除项目后,从集合中删除相应的项目,然后再次刷新列表框。