【问题标题】:List depends on value selection列表取决于值选择
【发布时间】:2013-02-27 02:23:18
【问题描述】:

我有 2 个comboboxcomboBox 的值都来自 dataset

cb1 包含数字列表 eg : 10, 20, 30
cb2 包含数字列表 eg : 10.2, 11.3, 20.5, 24.8, 34.5

Cb2 列表必须在选择 cb1 时过滤

例如:10 -> 10.2,11.3 20 -> 20.5, 24.8 30 -> 34.5

如何使用 vb.net 编写这些代码?我正在使用 mssql,所有数据都存储在表和 Visual Studio 2005 vb.net 中

cb1 = BilletSize
cb2 = BilletUnitWt

编辑

到目前为止尝试过的代码

Private Sub cbBilletSize_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbBilletSize.SelectedIndexChanged 
    Dim SqlStr As String SqlStr = "SELECT tbBilletUnitWt.BilletUnitWtCode FROM tbBilletUnitWt WHERE tbBilletUnitWt.BilletSizeCode = " & Me.cbBilletSize.SelectedValue & ";" 
    Me.cbUnitWt.SelectedValue.RowSource = SqlStr Me.cbUnitWt.SelectedValue.Requery()
End Sub

【问题讨论】:

  • 您要求我们编写大量代码来向您展示解决方案。你至少在使用 EntityFramework 吗?到目前为止,您是否尝试过任何方法?
  • 我是第一次使用这个stackoverflow,我可以知道如何在这里打印我的代码吗?
  • 为您完成 :) 为了将来参考,您只需按编辑即可编辑您的问题并向其添加代码。
  • 嗨 Yu,我的代码没有按我想要的方式运行。你能帮我吗?
  • 我正在看一下,如果我能提供帮助,我会尽快通知您。

标签: vb.net winforms combobox


【解决方案1】:

我用列表而不是数据集快速尝试了这一点。你能看看你是否可以调整它以使其适合你吗?

我认为您应该主要只需将列表操作替换为等效的数据集操作...

Public Class Form1

    Dim combobox1Items As List(Of Integer) = New List(Of Integer)
    Dim combobox2Items As List(Of Double) = New List(Of Double)

    Public Sub New()

        ' This call is required by the designer.
        InitializeComponent()

        Me.combobox1Items.Add(10)
        Me.combobox1Items.Add(20)
        Me.combobox1Items.Add(30)

        Me.combobox2Items.Add(10.2)
        Me.combobox2Items.Add(11.3)
        Me.combobox2Items.Add(20.5)
        Me.combobox2Items.Add(24.8)
        Me.combobox2Items.Add(34.5)

        With Me.ComboBox1
            .DataSource = Me.combobox1Items
        End With

    End Sub

    Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged

        Dim bindingList As New List(Of Double)

        For Each item As Double In Me.combobox2Items
            If item > CInt(Me.ComboBox1.Items(Me.ComboBox1.SelectedIndex)) Then
                Call bindingList.Add(item)
            End If
        Next

        With Me.ComboBox2
            .DataSource = bindingList
        End With

    End Sub

End Class

【讨论】:

  • 我在这之前做 items.add 列表。它有效。但是,当用户在 Master 中添加记录时,从表格中提取数据更有效,然后我需要再次添加 1 行代码,而不是运行适合所有条件的当前代码。但我非常感谢您对上面代码的帮助。谢谢
  • 好的,很抱歉,如果这对您没有任何帮助。不幸的是,我没有太多使用数据集的经验,所以我无法提供比这更多的帮助。我希望你能让你的代码正常工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-13
  • 2016-11-30
  • 2023-03-06
相关资源
最近更新 更多