3 个组合框都连接到 1 个数据源,需要能够选择单独的选项
3 combo boxes all connected to 1 datasource, Need to be able to pick seperate options
我在一个表单上有 3 个组合框,它们都连接到同一个数据源。数据源有 8 个选项可以 selected。我怎样才能在组合框中选择 3 个不同的选项。一旦我 select 1 项,所有组合框都会更改为相同的选项。
Private Sub FrmExtras_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'TODO: This line of code loads data into the 'RatesDataSet.Extras' table. You can move, or remove it, as needed.
Me.ExtrasTableAdapter.Fill(Me.PricingDataSet.Extras)
End Sub
Private Sub CboOptions1_SelectedIndexChanged(sender As Object, e As EventArgs) 'Handles CboOptions1.SelectedIndexChanged
If Trim(CboOptions1.Text) <> "O Pick Your Option" Then
TxtQty1.Text = 1
End If
End Sub
问题是你只有一个 CurrencyManager
。使用单个 CurrencyManager
绑定到同一数据源的三个控件将保持同步。
引入 BindingSource
组件是为了提供与绑定相关的所有事物的一站式服务,包括对 CurrencyManager
的访问。 BindingSource
的许多关闭成员传递到基础 CurrencyManager
.
在这种情况下,您需要为每个 ComboBox
创建一个单独的 BindingSource
,这将导致单独的 CurrencyManager
,这将导致独立的选择。我没有看到绑定代码,所以我假设您是在设计器中进行绑定的。检查那些 ComboBoxes
的 DataSource
属性,我想你会发现它们都绑定到相同的 BindingSource
。检查 BindingSource
的 DataSource
和 DataMember
,您应该会发现它已绑定到 DataSet
.
的 DataTable
您需要在表单中添加两个新的 BindingSources
并以相同的方式将它们绑定到同一个 DataTable
。然后,您可以将这两个 BindingSources
绑定到 ComboBoxes
中的两个。然后您应该会发现您可以在所有三个中进行独立选择。
您可以尝试为其他组合框创建新的 BindingContext
。
combobox1.DataSource = results
combobox1.DisplayMember = "DisplayValue"
combobox1.ValueMember = "Value"
combobox2.BindingContext = New BindingContext()
combobox2.DataSource = results
combobox2.DisplayMember = "DisplayValue"
combobox2.ValueMember = "Value"
我在一个表单上有 3 个组合框,它们都连接到同一个数据源。数据源有 8 个选项可以 selected。我怎样才能在组合框中选择 3 个不同的选项。一旦我 select 1 项,所有组合框都会更改为相同的选项。
Private Sub FrmExtras_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'TODO: This line of code loads data into the 'RatesDataSet.Extras' table. You can move, or remove it, as needed.
Me.ExtrasTableAdapter.Fill(Me.PricingDataSet.Extras)
End Sub
Private Sub CboOptions1_SelectedIndexChanged(sender As Object, e As EventArgs) 'Handles CboOptions1.SelectedIndexChanged
If Trim(CboOptions1.Text) <> "O Pick Your Option" Then
TxtQty1.Text = 1
End If
End Sub
问题是你只有一个 CurrencyManager
。使用单个 CurrencyManager
绑定到同一数据源的三个控件将保持同步。
引入 BindingSource
组件是为了提供与绑定相关的所有事物的一站式服务,包括对 CurrencyManager
的访问。 BindingSource
的许多关闭成员传递到基础 CurrencyManager
.
在这种情况下,您需要为每个 ComboBox
创建一个单独的 BindingSource
,这将导致单独的 CurrencyManager
,这将导致独立的选择。我没有看到绑定代码,所以我假设您是在设计器中进行绑定的。检查那些 ComboBoxes
的 DataSource
属性,我想你会发现它们都绑定到相同的 BindingSource
。检查 BindingSource
的 DataSource
和 DataMember
,您应该会发现它已绑定到 DataSet
.
DataTable
您需要在表单中添加两个新的 BindingSources
并以相同的方式将它们绑定到同一个 DataTable
。然后,您可以将这两个 BindingSources
绑定到 ComboBoxes
中的两个。然后您应该会发现您可以在所有三个中进行独立选择。
您可以尝试为其他组合框创建新的 BindingContext
。
combobox1.DataSource = results
combobox1.DisplayMember = "DisplayValue"
combobox1.ValueMember = "Value"
combobox2.BindingContext = New BindingContext()
combobox2.DataSource = results
combobox2.DisplayMember = "DisplayValue"
combobox2.ValueMember = "Value"