如何使用数据源在列表框中添加或删除项目 [英] how to add or remove items from and to listbox with the use of datasource

查看:77
本文介绍了如何使用数据源在列表框中添加或删除项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个名为listbox1和listbox2的列表框.
有四个按钮,< ,<<, >, >>

在listbox1中,我填充名为partymas的表中的数据,该表的列partyname和partyid.

当我从listbox1中选择多个项目,然后单击button1(<)时,所有选中的项目将从listbox1中删除,并添加到listbox2中.

请帮我怎么做

从OP的答案移至:

I have two listbox named listbox1 and listbox2
There are four buttons, < ,<<, >, >>

In listbox1 I fill up the data from table named partymas which has columns partyname and partyid.

When I select multiple items from listbox1 and then click on button1(<) then all the selected items are removed from the listbox1 and added into listbox2.

Please help me how can do this

Moved from OP''s answer:

Imports System.Data.SQLite
Imports ComponentFactory.Krypton.Toolkit
Public Class frm_listbox
    Dim sqlconnect As New SQLiteConnection("Data Source=|datadirectory|\abcpayment;" & "version = 3;")
    Dim mydataset2 As Data.DataSet
    Dim mydataset As Data.DataSet
    Public Function listone()
        Dim sqlcommand As New SQLiteCommand("select partyid,partyname from partymas", sqlconnect)
        Dim mydata_adapter As New SQLiteDataAdapter(sqlcommand)
        Dim mydataset0 As New DataSet
        mydata_adapter.Fill(mydataset0)
        lst_left.DataSource = mydataset0.Tables(0)
        lst_left.DisplayMember = "partyname"
        lst_left.ValueMember = "partyid"
        mydataset = mydataset0.Copy()
        mydataset2 = mydataset0.Clone()
        lst_right.DataSource = mydataset2.Tables(0)
        lst_right.DisplayMember = "partyname"
        lst_right.ValueMember = "partyid"
        'MessageBox.Show(mydataset2.Tables(0).Rows(0)(1).ToString)
        Return 0
    End Function
    Public Function moveright()
        Dim str(lst_left.SelectedItems.Count - 1) As String
        Dim g As Integer = 0
        Dim i As Integer
        Dim j As Integer
        Dim k As Integer
        For k = 0 To lst_left.Items.Count - 1
        If (lst_left.GetSelected(k)) Then
        str(g) = lst_left.GetItemText(lst_left.Items(k))
        g = g + 1
        End If
        Next
        For j = 0 To str.Length - 1
        For i = 0 To mydataset.Tables(0).Rows.Count - 1
        If (str(j) = mydataset.Tables(0).Rows(i)(1).ToString) Then
        Dim objrow As System.Data.DataRow = mydataset.Tables(0).Rows(i)
        mydataset2.Tables(0).ImportRow(objrow)
        mydataset.Tables(0).Rows(i).Delete()
        mydataset.Tables(0).Rows(i).AcceptChanges()
        Exit For
        End If
        Next
        Next
        lst_right.DataSource = mydataset2.Tables(0)
        lst_left.DataSource = mydataset.Tables(0)

        Return 0
    End Function
    Public Function moverightall()
        Dim str(lst_left.Items.Count - 1) As String
        Dim g As Integer = 0
        Dim i As Integer
        Dim j As Integer
        Dim k As Integer
        For k = 0 To lst_left.Items.Count - 1
        str(g) = lst_left.GetItemText(lst_left.Items(k))
        g = g + 1
        Next
        For j = 0 To str.Length - 1
        For i = 0 To mydataset.Tables(0).Rows.Count - 1
        If (str(j) = mydataset.Tables(0).Rows(i)(1).ToString) Then
        Dim objrow As System.Data.DataRow = mydataset.Tables(0).Rows(i)
        mydataset2.Tables(0).ImportRow(objrow)
        mydataset.Tables(0).Rows(i).Delete()
        mydataset.Tables(0).Rows(i).AcceptChanges()
        Exit For
        End If
        Next
        Next
        lst_right.DataSource = mydataset2.Tables(0)
        lst_left.DataSource = mydataset.Tables(0)
        Return 0
    End Function
    Public Function moveleft()
        Dim str(lst_right.SelectedItems.Count - 1) As String
        Dim g As Integer = 0
        Dim i As Integer
        Dim j As Integer
        Dim k As Integer
        For k = 0 To lst_right.Items.Count - 1
        If (lst_right.GetSelected(k)) Then
        str(g) = lst_right.GetItemText(lst_right.Items(k))
        g = g + 1
        End If
        Next
        For j = 0 To str.Length - 1
        For i = 0 To mydataset2.Tables(0).Rows.Count - 1
        If (str(j) = mydataset2.Tables(0).Rows(i)(1).ToString) Then
        Dim objrow As System.Data.DataRow = mydataset2.Tables(0).Rows(i)
        mydataset.Tables(0).ImportRow(objrow)
        mydataset2.Tables(0).Rows(i).Delete()
        mydataset2.Tables(0).Rows(i).AcceptChanges()
        Exit For
        End If
        Next
        Next
        lst_right.DataSource = mydataset2.Tables(0)
        lst_left.DataSource = mydataset.Tables(0)
        Return 0
    End Function
    Public Function moveleftall()
        Dim str(lst_right.Items.Count - 1) As String
        Dim g As Integer = 0
        Dim i As Integer
        Dim j As Integer
        Dim k As Integer
        For k = 0 To lst_right.Items.Count - 1
        str(g) = lst_right.GetItemText(lst_right.Items(k))
        g = g + 1
        Next
        For j = 0 To str.Length - 1
        For i = 0 To mydataset2.Tables(0).Rows.Count - 1
        If (str(j) = mydataset2.Tables(0).Rows(i)(1).ToString) Then
        Dim objrow As System.Data.DataRow = mydataset2.Tables(0).Rows(i)
        mydataset.Tables(0).ImportRow(objrow)
        mydataset2.Tables(0).Rows(i).Delete()
        mydataset2.Tables(0).Rows(i).AcceptChanges()
        Exit For
        End If
        Next
        Next
        lst_right.DataSource = mydataset2.Tables(0)
        lst_left.DataSource = mydataset.Tables(0)
        Return 0
    End Function
    Private Sub frm_listbox_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        listone()
        btn_allshiftleft.Enabled = False
        btn_shiftleft.Enabled = False
        btn_shiftright.Enabled = False
        lst_left.SelectedIndex = -1
    End Sub
    Private Sub btn_exit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_exit.Click
        Me.Close()
    End Sub
    Private Sub btn_shiftright_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_shiftright.Click
        moveright()
        lst_right.SelectedIndex = -1
        lst_left.SelectedIndex = -1
    End Sub
    Private Sub btn_allshiftright_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_allshiftright.Click
        moverightall()
        lst_right.SelectedIndex = -1
    End Sub
    Private Sub btn_shiftleft_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_shiftleft.Click
        moveleft()
        lst_left.SelectedIndex = -1
        lst_right.SelectedIndex = -1
        End Sub
        Private Sub btn_allshiftleft_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_allshiftleft.Click
        moveleftall()
        lst_left.SelectedIndex = -1
        'btn_allshiftright.Enabled = True
        'btn_allshiftleft.Enabled = False
    End Sub
    'Private Sub lst_right_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles lst_right.KeyDown
    ' MsgBox(lst_right.SelectedIndex)
    'End Sub
    Private Sub lst_left_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lst_left.MouseClick
        MsgBox(lst_left.SelectedIndex)
    End Sub
    Private Sub lst_left_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lst_left.SelectedIndexChanged
        If lst_left.SelectedItems.Count >= 0 Then
        btn_shiftright.Enabled = True
        btn_allshiftleft.Enabled = False
        btn_allshiftright.Enabled = False
        btn_shiftleft.Enabled = False
        End If
        If lst_left.SelectedItems.Count = lst_left.Items.Count Or lst_left.SelectedItems.Count = lst_left.Items.Count - lst_right.Items.Count Or lst_left.SelectedIndex = -1 Then
        btn_allshiftright.Enabled = True
        btn_allshiftleft.Enabled = False
        btn_shiftleft.Enabled = False
        btn_shiftright.Enabled = False
        End If
    End Sub
    Private Sub lst_right_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lst_right.SelectedIndexChanged
        If lst_right.SelectedItems.Count >= 0 Then
        btn_shiftleft.Enabled = True
        btn_allshiftleft.Enabled = False
        btn_allshiftright.Enabled = False
        btn_shiftright.Enabled = False
        End If
        If lst_right.SelectedItems.Count = lst_right.Items.Count Or lst_right.SelectedItems.Count = lst_right.Items.Count - lst_left.Items.Count Or lst_right.SelectedIndex = -1 Then
        btn_allshiftleft.Enabled = True
        btn_allshiftright.Enabled = False
        btn_shiftleft.Enabled = False
        btn_shiftright.Enabled = False
        End If
    End Sub
End Class

推荐答案

链接-[在vb.net的Asp.net中使用列表框] [ ^ ]可能会帮助您学习如何在列表框中添加项目并将其从一个列表框中移动到另一个列表框中
This Link-[Working with Listbox in Asp.net in vb.net][^] might help you to learn how to add Item in listbox and move it from one to another listbox


这篇关于如何使用数据源在列表框中添加或删除项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆