【发布时间】:2015-05-07 08:04:36
【问题描述】:
我有一个非常奇怪的问题。我在表单上有一个 ComboBox 控件。它有一个DataTable 的DataSource。它同时设置了 DisplayMember 和 ValueMember。我已经调试并设置了断点,最后一段代码确认数据存在。我使用了 DataTable 可视化工具,并且行显示为我想要的值。我在调试时在“立即”窗口中运行了命令以检查项目数,确认 DisplayMember 等一切正常。 ComboBox 中出现的空白区域会根据我的选择更改大小,但不显示文本?非常非常奇怪。我以完全相同的方式设置了另一个 ComboBox,它工作正常。它应该工作!后端告诉我它正在工作,但它只是没有显示。有任何想法吗? .NET 4、VB.NET、WinForms。有人有这个问题/解决方案吗?
这是代码(它也永远不会出错)。
Public Sub RefreshContacts(ByVal CustomerKey As Integer)
Using tContactsTa As New dbQMSTableAdapters.tContactsTableAdapter, tContactsDt As New dbQMS.tContactsDataTable
Try
tContactsTa.FillBasicByCustomerKey(tContactsDt, CustomerKey)
cmbCncts.BeginUpdate()
With cmbCncts
.DataSource = tContactsDt
.ValueMember = "fContactKey"
.DisplayMember = "fContactName"
End With
cmbCncts.EndUpdate()
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
End Try
End Using
End Sub
正如我之前所说,我已经调试并查看了 DataTable 可视化器,数据就在那里。当我运行? cmbCncts.Items.Count 时,它会反馈正确的值。我还检查了DisplayMember 和ValueMember 属性,它们都是正确的。
【问题讨论】:
-
组合框的
datamode属性设置为normal? -
没有
DataMode属性。有DrawMode,是的,它设置为Normal -
我不小心来到这里,因为我遇到了同样的问题。调查后问题出在
using部分。放在外面
标签: vb.net combobox datasource