【问题标题】:Populating Listbox with Data from DataGridView使用 DataGridView 中的数据填充列表框
【发布时间】:2014-08-05 17:38:27
【问题描述】:

我有 2 个表格。表单 A 有一个列表框和一个组合框。表单 B 有一个 DataGridView。在我的 A 中,我的组合框旨在代表任务的组。例如收件箱,重要等。所以每当我从组合框中选择一个项目时,例如我选择“收件箱”项,DataGridViewer 将对其中一列中包含“收件箱”的所有行进行排序。这一切都很好。我可以查看排序后的数据。

要将我的数据加载到我使用的 DataGridView 中:

Dim ds As DataSet
Dim dataset1 As New DataSet("datasetTasks")
Dim table1 As New DataTable("tableTask")
Private Sub Main_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    ds = CreateDataset()
    frm_Tasks.DataGridView1.DataSource = ds.Tables("tableTask")
    LoadFromXMLfile("C:\Users\Beta4K\Documents\Tasks.FILE")
    For Each dr As DataRow In ds.Tables(0).Rows
        ListBox1.Items.Add(dr("TaskName").ToString())
    Next
End Sub
Private Sub LoadFromXMLfile(filename As String)
    If System.IO.File.Exists(filename) Then
        Dim xmlSerializer As XmlSerializer = New XmlSerializer(ds.GetType)
        Dim readStream As FileStream = New FileStream(filename, FileMode.Open)
        ds = CType(xmlSerializer.Deserialize(readStream), DataSet)
        readStream.Close()
        frm_Tasks.DataGridView1.DataSource = ds.Tables("tableTask")
    Else
        MsgBox("file not found! add data and press save button first.", MsgBoxStyle.Exclamation, "")
    End If
End Sub
Private Function CreateDataset() As DataSet
    table1.Columns.Add("TaskID")
    table1.Columns.Add("TaskName")
    table1.Columns.Add("TaskMessage")
    table1.Columns.Add("TaskDate")
    table1.Columns.Add("TaskTime")
    table1.Columns.Add("TaskGroup")
    dataset1.Tables.Add(table1)
    Return dataset1
End Function

这是我的组合框的代码:

    ListBox1.Items.Clear()
    Dim dv As New DataView(ds.Tables("tableTask"))
    dv.RowFilter = "TaskGroup = '" + ComboBox1.SelectedItem + "'"
    frm_Tasks.DataGridView1.DataSource = dv.ToTable("tableTask")
    For Each dr As DataRow In ds.Tables(0).Rows
        ListBox1.Items.Add(dr("TaskName").ToString())
    Next

这样做的目的是清除列表框,然后通过读取 DataGridViewer 中的所有数据将项目重新加载到列表框中。由于它已经排序,它所要做的就是添加项目,但它没有。相反,它只是添加所有项目而不考虑过滤器。

谁能帮帮我。

【问题讨论】:

    标签: vb.net datagridview listbox


    【解决方案1】:

    当你需要循环数据视图时,你循环了数据表

    For Each dr As DataRowView In dv
        ListBox1.Items.Add(dr("TaskName").ToString())
    Next
    

    【讨论】:

    • 谢谢!完美运行。
    猜你喜欢
    • 2021-02-13
    • 1970-01-01
    • 2014-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多