Vb.net 单击列标题
我想在listview中按时间、付款或姓名在组合框中排序,但我想在单击标题栏时从listview标题进行排序。我希望listview按其排序,我正在使用组合框的此代码。请帮助我Vb.net 单击列标题,vb.net,winforms,listview,Vb.net,Winforms,Listview,我想在listview中按时间、付款或姓名在组合框中排序,但我想在单击标题栏时从listview标题进行排序。我希望listview按其排序,我正在使用组合框的此代码。请帮助我 Private Sub OrderBy() Try Dim OB As String If ComboBox1.Text = "ID" Then OB = "ID" ElseIf ComboBox1.Text = "Name" Then
Private Sub OrderBy()
Try
Dim OB As String
If ComboBox1.Text = "ID" Then
OB = "ID"
ElseIf ComboBox1.Text = "Name" Then
OB = "StudentName"
ElseIf ComboBox1.Text = "Payment" Then
OB = "Payment"
ElseIf ComboBox1.Text = "Time" Then
OB = "LessonTime"
ElseIf ComboBox1.Text = "Date" Then
OB = "LessonDate"
End If
Dim dt As New DataTable
Dim ds As New DataSet
ds.Tables.Add(dt)
Dim da As New OleDbDataAdapter("select * from Tend order by " & OB & "", con)
da.Fill(dt)
Dim myrow As DataRow
For Each myrow In dt.Rows
ListView1.Items.Add(myrow.Item(0))
ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(myrow.Item(1))
ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(myrow.Item(2))
ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(myrow.Item(3))
ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(myrow.Item(4))
ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(myrow.Item(5))
Next
为了更好地解释,请使用ColumnClick事件并使用e.Column来了解被单击的列的索引 编辑:这不是最好的方法,但现在对你来说是最简单的方法
Private Sub OrderBy(Col as Integer)
Try
Dim OB As String
Select Case Col
'Depending on the order of columns in your table
Case 0
OB = "ID"
Case 1
OB = "StudentName"
Case 2
OB = "Payment"
Case 3
OB = "LessonTime"
Case 4
OB = "LessonDate"
End Select
Dim dt As New DataTable
Dim ds As New DataSet
ds.Tables.Add(dt)
Dim da As New OleDbDataAdapter("select * from Tend order by " & OB & "", con)
da.Fill(dt)
ListView1.Items.Clear
For Each myrow As DataRow In dt.Rows
Dim item = ListView1.Items.Add(myrow.Item(0))
item.SubItems.Add(myrow.Item(1))
item.SubItems.Add(myrow.Item(2))
item.SubItems.Add(myrow.Item(3))
item.SubItems.Add(myrow.Item(4))
item.SubItems.Add(myrow.Item(5))
Next
End Try
End Sub
Private Sub ColumnClick(ByVal o As Object, ByVal e As ColumnClickEventArgs) Handles ListView1.ColumnClick
OrderBy(e.Column)
End Sub
我也遇到了同样的问题,我找到了c语言的Microsoft教程,不久前转换为VB.NET 您可以在以下网站上查看我转换的开源项目:
它显示了如何添加新项目,并将其分成列,您可以通过单击列标题对列表视图进行排序。您也可以设置默认的排序方法。考虑使用ColumnClick事件并使用e.ColumnIndex来了解单击的列的索引。Thank@nimblebit这正是我想要的,但我不能使用代码,您可以将我的代码放在您的代码中吗?它对我不起作用:谢谢a loti我对代码有问题,ColumnIndex->中出错:ColumnIndex不是'system.windows.form.ColumnClickEventArgs'的成员我刚刚将属性名称改为Column而不是ColumnIndex.hey@Nizam我不能使用此代码,我如何知道我选择的列是谁并对数据进行排序,我正在使用此语句进行排序,按时间从标准顺序选择*,或按名称排序等,请帮助我,我需要这个工作这么糟糕,谢谢一个lotOk,属性列给你点击的列数从零开始。第一列是零,一,然后继续。知道单击的列后,可以使用代码对数据进行排序。在我的回答中,变量col表示单击的列数,变量ColumnName引用单击的列的标题。