Vb.net 从列表视图中获取列标题并将其添加到组合框中

Vb.net 从列表视图中获取列标题并将其添加到组合框中,vb.net,winforms,listview,combobox,Vb.net,Winforms,Listview,Combobox,我想从列表视图中获取列标题,然后将它们放入组合框中。我已尝试使用以下代码执行此操作: For Each i In frmMain.lvItems.Columns cbColumn.Items.Add(i) Next 但这段代码显示了一段难看的文字,上面写着:“ColumnHeader:text:” 如何删除此项?您正在将ColumnHeader对象添加到组合框中,因此在组合框中显示的是ColumnHeader.ToString(),它是(.Net源代码),例如: 明确

我想从列表视图中获取
列标题
,然后将它们放入组合框中。我已尝试使用以下代码执行此操作:

 For Each i In frmMain.lvItems.Columns
        cbColumn.Items.Add(i)
    Next
但这段代码显示了一段难看的文字,上面写着:“ColumnHeader:text:”


如何删除此项?

您正在将
ColumnHeader
对象添加到组合框中,因此在组合框中显示的是
ColumnHeader.ToString()
,它是(.Net源代码),例如:

明确定义您迭代的对象的类型-这样您就不会得到
对象
类型-并指定要设置的属性值,例如
文本
属性(或
名称
或您喜欢在组合框中看到的任何内容):

或者,将组合框的数据源设置为Columns集合,指定提供要显示的文本的属性:
ColumnHeader.text
“text”
)、
ColumnHeader.Name
“Name”
)等:

请注意,在本例中,组合框的每个项目都是
ColumnHeader
对象,而不是字符串

ColumnHeader: Text: ColumnHeader1
cbColumn.Items.Clear()
For Each column As ColumnHeader In lvItems.Columns
    cbColumn.Items.Add(column.Text)
Next
cbColumn.DataSource = Nothing
cbColumn.DisplayMember = "Text"
cbColumn.DataSource = lvItems.Columns