gpt4 book ai didi

vb.net - 如何更改ComboBox的数据源?

转载 作者:行者123 更新时间:2023-12-02 07:25:40 26 4
gpt4 key购买 nike

我有两个组合框。组合框1的数据来源是固定的字符串列表。 Combobox2 的数据源将是一个字符串列表,具体取决于组合框1 的选择。这与常见情况非常相似,如下所示:首先输入您的国家,然后根据您的输入,第二个组合框将向您显示该国家/地区的大学列表。

'Change selection of first combobox
Private Sub cbxClient_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbxClient.SelectedIndexChanged
Try
If cbxClient.SelectedIndex <> -1 Then
GetAccount()
End If
Catch
Throw
End Try
End Sub

'Based on selection of first combobox, update the data sorce of second combobox
Private Sub GetAccount()
Try
m_listAccount.Clear()

Dim strClient As String = cbxClient.SelectedItem.ToString

For i As Integer = 0 To m_listDS.Count - 1
If m_listDS(i).Client.Tostring = strClient Then
m_ds = m_listDS(i)
Exit For
End If
Next

If Not m_ds Is Nothing Then
For Each row As DataRow In m_ds.Tables("Account").Rows
m_listAccount.Add(row("account").ToString)
Next
End If

cbxAccount.DataSource = m_listAccount

Catch ex As Exception
End Try
End Sub

我的问题是,虽然 m_listAccount 更新(具有正确的信息),但 cbxAccount 中显示的选项并未根据 m_listAccount 更新(具有错误的信息)。我不明白为什么会发生这种情况。

注意:假设m_listAccount中的旧字符串为{"old1"}(列表中只有1个字符串),更新后,m_listAccount中的字符串为{"new"}。通过断点,我得到以下信息:

cbxAccount.DataSorce={"new"}
cbxAccount.SelectedItem={"old1"}

在表单中,cbxAccount 显示“old1”字符串。

最佳答案

试试这个,

cbxAccount.DataSource = Nothing
cbxAccount.DataSource = m_listAccount

如果您只是更新同一个列表对象,数据源可能不会自动更新,但如果指针更改为数据源,则应该自动更新。

或者你可以尝试, m_listAccount.AcceptChanges()

如果m_listAccountDataTable

关于vb.net - 如何更改ComboBox的数据源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10604446/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com