Vb.net 在VB 2010中在选项卡控件内填充ListView

Vb.net 在VB 2010中在选项卡控件内填充ListView,vb.net,Vb.net,我对visualbasic很陌生。我的表单中有一个选项卡控件,在其中我放置了一个listview。我想做的是每次单击每个选项卡时填充listview。但我不知道怎么做 有人能帮我吗 这是我的代码 Public Class Form2 Private Sub PopulateRecords() Dim TSR As New ADODB.Recordset Dim STRSQL As String = "" STRSQL &= "SE

我对visualbasic很陌生。我的表单中有一个选项卡控件,在其中我放置了一个listview。我想做的是每次单击每个选项卡时填充listview。但我不知道怎么做

有人能帮我吗

这是我的代码

Public Class Form2

    Private Sub PopulateRecords()
        Dim TSR As New ADODB.Recordset
        Dim STRSQL As String = ""
        STRSQL &= "SELECT * from Records " & vbCrLf
        STRSQL &= "WHERE (Customer_name like '" & TextBox1.Text & "%' or Item_name like '%" & TextBox1.Text & "%' or Item_code like '%" & TextBox1.Text & "%' or Price like '%" & TextBox1.Text & "%' or Qty like '%" & TextBox1.Text & "%' or Total_price like '%" & TextBox1.Text & "%' or Date_started like '%" & TextBox1.Text & "%' or Date_finish like '%" & TextBox1.Text & "%')" & vbCrLf
        STRSQL &= "order by Customer_name, Item_name" & vbCrLf
        TSR.Open(STRSQL, CNN, 1, 3)
        ListView1.Items.Clear()
        While Not TSR.EOF
            ListView1.Items.Add(TSR.Fields("Customer_name").Value)
            ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(TSR.Fields("Item_name").Value)
            ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(TSR.Fields("Item_code").Value)
            ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(TSR.Fields("Price").Value)
            ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(TSR.Fields("Qty").Value)
            ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(TSR.Fields("Total_price").Value)
            ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(TSR.Fields("Date_started").Value)
            ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(TSR.Fields("Date_finish").Value)
            ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(TSR.Fields("ID").Value)
            TSR.MoveNext()
        End While
        TSR.Close()
    End Sub

    Private Sub TabPage1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabPage1.Click
        Call PopulateRecords()
    End Sub


End Class

您应该尝试响应选项卡控件上的父控件。当用户在选项卡之间移动时,将触发此操作。TabPage.Click在单击页面本身时触发,而不是在选项卡更改为时触发。

使用选项卡控件的SelectedIndexChanged事件

    private sub tabControl_SelectedIndexChanged(Byval sender as System.Object, _
            Byval e as System.EventArgs) Handles tabControl.SelectedIndexChanged
    {
        PopulateRecords()
    }
您还可以通过以下方式确定正在查看的选项卡页面:

    byval page as TabPage = tabControl.TabPages(tabControl.SelectedIndex)

希望这有助于=D

从您的问题来看,您目前的实施在哪些方面没有达到您的目标还不清楚-请您详细说明一下,好吗?很抱歉。现在的问题是每次单击每个选项卡时,我的listview仍然是空的。希望你现在明白我的意思。非常感谢!这真的很有帮助。很高兴能帮助你,塞琳-享受你的.Net编程!你好。现在我的选项卡控件中有两个选项卡,每个选项卡都有不同的listview。使用tabcontrol的SelectedIndexChanged时,仅填充tab page 1列表视图。tab page 2中用于填充另一组信息的listview保留为空。您可以使用SelectedIndexChanged事件确定用户通过tabControl.SelectedIndex查看的选项卡页。因此,当所选索引为1时,调用PopulateRecordsForTabPage1;如果所选索引为2,请调用PopulateRecordsForTabPage2。顺便问一下,您是否有单独的函数来填充每个listview?是的,我有单独的函数。我会试试你刚才的建议,让你知道它是如何工作的。非常感谢你。