如何引用不同标签页上的列表视图中的数据?
how to reference to data from listviews on different tabpages?
我在一个选项卡控件中有几个选项卡页,每个选项卡只包含一个列表视图。我需要从所选选项卡的列表视图中获取 data/items。我的问题是,我无法引用列表视图。我试过了
exportpath = TabControl1.SelectedTab.Controls(0).
但是此时IDE不知道有listview,所以我不能选择
.items(i).tostring
此时创建标签页和列表视图的变量已经被覆盖。您认为我应该选择另一种方法来创建选项卡和列表视图(也许创建一个列表(列表视图)来记住这些内容),还是有接近我的示例的方法尝试?
此致,简
dim lst as listview = TabControl1.SelectedTab.Controls(0)
dim exportpath as string = lst.items(i).tostring
?那行得通吗?
编辑:假设列表视图是您在那里拥有的唯一控件。
我不会加载基于集合中索引的控件。
我假设既然您正在尝试动态访问它们,那么您也在动态创建它们?
添加一个可以在控件上引用的标记或使用相同的命名约定。 listview 的名称,即 MainListView#,其中 # 只是递增,或者只是将 listview 上的所有标签分配给一致的东西。
然后使用辅助函数循环遍历该选项卡的控件集合并找到实际控件。
然后遍历控件集合并找到您想要定位的控件。
Dim lstView As ListView = ControlNameStartsWith(TabControl1.SelectedTab, "MainListView")
lstView.Items.Add("test")
函数:
Function ControlByTag(ByRef parent As Control, ByVal tag As String)
For Each Cntl As Control In parent.Controls
If Cntl.Tag.ToString.ToLower = tag.ToLower Then
Return Cntl
Exit For
End If
Next
Return Nothing
End Function
Function ControlNameStartsWith(ByRef parent As Control, ByVal likePhrase As String)
For Each Cntl As Control In parent.Controls
If Cntl.Name.ToLower.StartsWith(likePhrase.ToLower) Then
Return Cntl
Exit For
End If
Next
Return Nothing
End Function
Function ControlByName(ByRef parent As Control, ByVal name As String)
For Each Cntl As Control In parent.Controls
If Cntl.Name.ToLower = name.ToLower Then
Return Cntl
Exit For
End If
Next
Return Nothing
End Function
我在一个选项卡控件中有几个选项卡页,每个选项卡只包含一个列表视图。我需要从所选选项卡的列表视图中获取 data/items。我的问题是,我无法引用列表视图。我试过了
exportpath = TabControl1.SelectedTab.Controls(0).
但是此时IDE不知道有listview,所以我不能选择
.items(i).tostring
此时创建标签页和列表视图的变量已经被覆盖。您认为我应该选择另一种方法来创建选项卡和列表视图(也许创建一个列表(列表视图)来记住这些内容),还是有接近我的示例的方法尝试?
此致,简
dim lst as listview = TabControl1.SelectedTab.Controls(0)
dim exportpath as string = lst.items(i).tostring
?那行得通吗? 编辑:假设列表视图是您在那里拥有的唯一控件。
我不会加载基于集合中索引的控件。
我假设既然您正在尝试动态访问它们,那么您也在动态创建它们?
添加一个可以在控件上引用的标记或使用相同的命名约定。 listview 的名称,即 MainListView#,其中 # 只是递增,或者只是将 listview 上的所有标签分配给一致的东西。
然后使用辅助函数循环遍历该选项卡的控件集合并找到实际控件。
然后遍历控件集合并找到您想要定位的控件。
Dim lstView As ListView = ControlNameStartsWith(TabControl1.SelectedTab, "MainListView")
lstView.Items.Add("test")
函数:
Function ControlByTag(ByRef parent As Control, ByVal tag As String)
For Each Cntl As Control In parent.Controls
If Cntl.Tag.ToString.ToLower = tag.ToLower Then
Return Cntl
Exit For
End If
Next
Return Nothing
End Function
Function ControlNameStartsWith(ByRef parent As Control, ByVal likePhrase As String)
For Each Cntl As Control In parent.Controls
If Cntl.Name.ToLower.StartsWith(likePhrase.ToLower) Then
Return Cntl
Exit For
End If
Next
Return Nothing
End Function
Function ControlByName(ByRef parent As Control, ByVal name As String)
For Each Cntl As Control In parent.Controls
If Cntl.Name.ToLower = name.ToLower Then
Return Cntl
Exit For
End If
Next
Return Nothing
End Function