vb.net - 隐藏 LookUpEdit 中的列 (DevExpress)

标签 vb.net datatable devexpress

我正在尝试隐藏除 DisplayMember 之外的 LookUpEdit 控件(DevExpress 3rd party)的所有列(其功能应该看起来像独立的 ComboBox)

Properties.DataSource 是一个 DataTable,因此当我想要访问每一列以隐藏它时,程序会启动 Null ref 异常。

我做错了什么?

代码:

If TypeOf Me.Properties.DataSource Is DataTable Then
     Me.Properties.PopulateColumns()
     Dim dt As DataTable = CType(Me.Properties.DataSource, DataTable)

     For Each column As DataColumn In dt.Columns
         If Me.Properties.Columns(column.ColumnName) IsNot Nothing AndAlso column.ColumnName IsNot Me.DisplayMember Then
                Me.Properties.Columns(column.ColumnName).Visible = False
         End If
     Next

End If

最佳答案

您可以只添加所需的一列,而不是隐藏列:

lookUpEdit1.Properties.Columns.Add(New LookUpColumnInfo(lookUpEdit1.Properties.DisplayMember))

这里是示例:

Dim dataTable As New DataTable()

dataTable.Columns.Add("ID", Type.GetType("System.Int32"))
dataTable.Columns.Add("Name", Type.GetType("System.String"))
dataTable.Columns.Add("Description", Type.GetType("System.String"))

dataTable.Rows.Add(0, "Name0", "Description0")
dataTable.Rows.Add(1, "Name1", "Description1")
dataTable.Rows.Add(2, "Name2", "Description2")

lookUpEdit1.Properties.DataSource = dataTable
lookUpEdit1.Properties.DisplayMember = "Name"
lookUpEdit1.Properties.ValueMember = "ID"

lookUpEdit1.Properties.Columns.Add(New LookUpColumnInfo(lookUpEdit1.Properties.DisplayMember))

关于vb.net - 隐藏 LookUpEdit 中的列 (DevExpress),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25290921/

相关文章:

asp.net-mvc - 如何在区域中使用公共(public) _ViewStart?

c# - 从(特定)服务器下载 FTP 文件适用于 .NET 4+,但不适用于 .NET 2.0

c# - 覆盖子类中的 ReadOnly 属性以使其读/写(VB.NET 或 C#)

c# - 重复的数据表列名

devexpress - 如何计算 devexpress xtragrid 的行数

vb.net - Delphi相当于VB的 "DirectCast"?

c# - 使用文本文件在运行时填充 Gridview

javascript - 如何在数据表中显示 5 行而不是默认的 10 行?

c# - Devexpress winform 自动生成列

c# - 用数据绑定(bind) DevExpress.XtraEditors.TextEdit 控件上的空字符串替换 '01-01-0001'