【问题标题】:Make the input of two combo boxes search for, read and display data from csv file使两个组合框的输入从 csv 文件中搜索、读取和显示数据
【发布时间】:2021-09-11 14:27:33
【问题描述】:

你看这个问题可能没有答案或者真的很混乱。这一切都在 Visual Studio 中(首选 VB 代码)。

我有这个程序,基本上当程序加载时,我希望组合框填充来自 CSV 文件的数据(我已经这样做了。) 然后,一旦我从部分框中选择了一个值,我希望竞争对手编号组合框仅显示具有从部分框中选择的值的数字(即依赖组合框)。然后根据选择的两个值,我希望显示一个名称。

因此,如果选择第 1 节,竞争对手 1,我希望显示他们的名字。但是如果我将其更改为第 1 部分的竞争对手 2,名称应该会更改。

【问题讨论】:

  • 您的标题清楚地表明了这里的问题所在。您将四个单独的问题视为一个问题。因此,您必须一次提出一个具体问题。您一起提出这么多问题的事实意味着您实际上并没有将其分解为多个部分并单独考虑每个部分,这可能就是您无法一开始就自己解决问题的原因。将您的问题分解成最小的部分,分别解决每个部分,解决您可以解决的部分,然后在此处一次询问一个特定问题。分而治之。
  • 我已经能够完成前两个步骤 - 我知道如何读取 CSV 并将其输入到组合框中……一旦完成,我就不知道了。
  • 那为什么这些步骤是问题的一部分?编辑您的问题并提供有关您需要帮助的特定问题的信息。尽您所能提供所有相关的内容,以及不相关的内容。
  • 查看编辑。希望这是有道理的
  • 您已经从 csv 文件中读取的信息,您对此做了什么?它是否漂浮在某个数据集中的某个地方?也许您应该将您的问题扩展为您的确切位置,以便我们可以查看您的数据结构并建议如何进行搜索

标签: vb.net winforms csv combobox


【解决方案1】:

为您的竞争对手对象构建一个类。

Public Class Person
    Public Property ComboBox1Value As String
    Public Property ComboBox2Value As String
    Public Property Name As String
End Class

然后声明一个集合以在某处保存对象列表。我将它添加到 Form1.vb 的顶部。现在,当您点击 Search_For_Name 子时,只需遍历集合,直到组合框值与其中一个对象中的值匹配。

Public Class Form1

    Dim MyCollection As New Collection

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
        'Populate your collection here from your csv by declaring a new
        'person for each row of your file, and then adding it to the 
        'collection.
    End Sub

    Private Sub ComboBox1_SelectedValueChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedValueChanged
        Search_For_Name()
    End Sub

    Private Sub ComboBox2_SelectedValueChanged(sender As Object, e As EventArgs) Handles ComboBox2.SelectedValueChanged
        Search_For_Name()
    End Sub

    Private Sub Search_For_Name()
        For Each P As Person In MyCollection
            If P.ComboBox1Value = ComboBox1.Text And P.ComboBox2Value = ComboBox2.Text Then
                TextBox1.Text = P.Name
                Exit For
            End If
        Next
    End Sub

End Class

【讨论】:

  • 我有 - 我正在努力使代码适用于潜在的无限数据......
  • 啊,所以您想知道如何处理搜索?不挂断。我将编辑我的答案。
  • 这几乎是实现搜索的最糟糕的方法之一。如果找到匹配项,至少要跳出循环。也将从使用 AndAlso 中受益,这将使 if 条件短路
  • 为 Hursey 添加了一个出口。
猜你喜欢
  • 1970-01-01
  • 2013-07-05
  • 1970-01-01
  • 2013-11-08
  • 1970-01-01
  • 1970-01-01
  • 2013-09-01
  • 1970-01-01
  • 2020-04-04
相关资源
最近更新 更多