Vb.net 使用组合框将datagridview绑定到数据源
我在问之前读过这些: 我有一个非常简单的问题。vb.net winforms项目包含几个数据表、一个组合框和一个datagridview 我可以选择要显示的数据表,如下所示: datagridview1.datasource=dt1'或dt2或dt3 这个很好用 我想做的是从combobox选择中选择要显示的datatable,我以前在这里定义了一个combobox项集合,因此:Vb.net 使用组合框将datagridview绑定到数据源,vb.net,winforms,datagridview,binding,datasource,Vb.net,Winforms,Datagridview,Binding,Datasource,我在问之前读过这些: 我有一个非常简单的问题。vb.net winforms项目包含几个数据表、一个组合框和一个datagridview 我可以选择要显示的数据表,如下所示: datagridview1.datasource=dt1'或dt2或dt3 这个很好用 我想做的是从combobox选择中选择要显示的datatable,我以前在这里定义了一个combobox项集合,因此: combobox1.item.add("dt1") combobox1.item.add("dt2") combob
combobox1.item.add("dt1")
combobox1.item.add("dt2")
combobox1.item.add("dt3")
我把这条线
datagridview.datasource=combobox1.SelectedItem
在组合框1中,您选择了索引更改事件
这将清空我的datagridview。我最初的想法是,这会失败,因为我将字符串传递给需要对象的对象,所以我尝试了datagridview.datasource=cobjcombox1.SelectedItem,但没有更好的结果
我做错了什么简单的事情?您的组合框只是一个字符串列表,因此当您执行datagridview.datasource=combobox1.SelectedItem时,实际上并没有将数据源设置为datatable
在您的ComboBox1\u SelectedIndexChanged事件中执行此操作:
选择Case组合框1.SelectedItem
案例dt1
datagridview1.datasource=dt1
案例dt2
datagridview1.datasource=dt2
案例dt3
datagridview1.datasource=dt3
结束选择
我通常用c编写代码,但这种迂回的方法可以工作:
If combobox1.SelectedItem = "dt1" Then
datagridview1.DataSource = dt1
ElseIf combobox1.SelectedItem = "dt2" Then
datagridview1.DataSource = dt2
ElseIf combobox1.SelectedItem = "dt3" Then
datagridview1.DataSource = dt3
End If
将DataTable对象引用直接添加到ComboBox.Items集合
combobox1.DisplayMember = "TableName"
combobox1.DataSource = {dt1, dt2, dt3}
' Or... (DisplayMember value applies anyway)
'combobox1.Items.AddRange({dt1, dt2, dt3})
在ComboBox事件处理程序中,设置DataGridView.DataSource:
如果要改为使用SelectedIndexChanged事件,请检查SelectedIndex是否<0,如果是,则返回 对于像我们这样有经验的人来说,这是个不错的方式,但是对于初学者来说可能会有点冗长和陌生。谢谢。我只是在为我自己的问题键入一个答案,这个问题涉及一个if组合框。SelectedIndex=0然后。。。。。当你的答案弹出时的陈述列表。我感谢你的时间。如果你已经解决了你的问题,你应该接受其中一个答案,或者如果你使用了不同的方法,写下你自己的答案,并将其作为答案。谢谢。我只是在为我自己的问题键入一个答案,这个问题涉及一个if组合框。SelectedIndex=0然后。。。。。当你的答案弹出时的陈述列表。谢谢你的时间。@DaveLowe:噢!我真的没有在回答下面看到你的名字。我以为你是从vb.net开始的。xD@DaveLowe:另外,如果您不知道组合框项目的索引及其顺序,则索引将更加困难。在那里,SelectedItem工作得更好。
Private Sub combobox1_SelectionChangeCommitted(sender As Object, e As EventArgs) Handles combobox1.SelectionChangeCommitted
dataGridView1.DataSource = DirectCast(combobox1.SelectedItem, DataTable)
End Sub