[英]How can I call this public sub when I add to the datagridview?
Public Sub DataGridView1_SortCompare(sender As Object, e As DataGridViewSortCompareEventArgs) Handles DataGridView1.SortCompare
If e.Column.Index <> 0 Then
Return
End If
Try
e.SortResult = If(CDec(e.CellValue1) < CDec(e.CellValue2), -1, 1)
e.Handled = True
Catch
End Try
End Sub
我是VB.net的新手,似乎无法弄清楚如何称呼此子
我尝试了Call DataGridView1_SortCompare(),但显然缺少一些参数。
基本上,我有一个form2将信息添加到datagridview中,但是添加之后,我需要对它按column(“ num”)进行排序。 我以为以下代码可以工作,但是它返回检查null的错误。
Form1.DataGridView1.Sort(DataGridView1.Columns("num"), System.ComponentModel.ListSortDirection.Ascending)
关于如何实现此目标的任何想法?
谢谢
我有一个form2,它将信息添加到datagridview,但是添加后,我需要对它按column(“ num”)排序。 我以为以下代码可以工作,但是它返回检查null的错误。
Form1.DataGridView1.Sort(DataGridView1.Columns("num"), System.ComponentModel.ListSortDirection.Ascending)
好的,因此以上语句在form2
上执行。 我猜想form2
也有一个DataGridView1
因为编译器没有上述语句的问题,但是没有“ num”列。 即使它确实有这样的列,也将是错误的列。
如果该列不存在,则DataGridView1.Columns("num")
不会出错。 而是返回Nothing
(空)。 您需要在Form1
上引用DataGridView1
的Columns
属性。
Form1.DataGridView1.Sort(Form1.DataGridView1.Columns("num"), System.ComponentModel.ListSortDirection.Ascending)
希望我能理解你的问题。 如果只是填充了datagridview,那么如果要创建一个基本的排序方法,则可以在datagridview填充后调用它。 我创建了一个显示示例:
Public Class Form1
Public Shared Sub Sort()
Form1.DataGridView1.Sort(Form1.DataGridView1.Columns("num"), System.ComponentModel.ListSortDirection.Ascending)
End Sub
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim dt As New DataTable
dt.Columns.Add("ID")
dt.Columns.Add("num")
dt.Columns(0).AutoIncrement = True
For value As Integer = 0 To 5
Dim R As DataRow = dt.NewRow
If value <> 2 Then
R("num") = "Test" & value
dt.Rows.Add(R)
Else
R("num") = ""
dt.Rows.Add(R)
End If
DataGridView1.DataSource = dt
Next
Sort()
End Sub
End Class
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.