我是DataGrid控件的新手,但我只是好奇为什么下面的第一个代码块工作,但第二个代码块没有? (我唯一能看到的就是 处理DataGridClaims 语法
第1座
Private Sub DataGridClaims_CellContentClick_1(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridClaims.CellContentClick
If e.RowIndex <> -1 Then
Dim frmViewClaims As New objViewClaim
frmViewClaims.ClaimID = DataGridViewClaims.CurrentRow.Cells("ClaimNum").Value
frmViewClaims.Show()
End If
End Sub
第2区
Private Sub DataGridClaims_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs)
If e.RowIndex <> -1 Then
Dim frmViewClaims As New objViewClaim
frmViewClaims.ClaimID = DataGridViewClaims.CurrentRow.Cells("ClaimNum").Value
frmViewClaims.Show()
End If
End Sub
答案 0 :(得分:2)
我对VB.NET不太熟悉,但CellContentClick
是单击单元格中的内容时发生的事件。
为了让程序理解这是一个事件,你在VB.NET中使用关键字Handles
。它允许您在事件处理程序方法本身上将绑定连接到事件处理程序。
这相当于c#中的+=
,看起来像
DataGridClaims.CellContentClick += DataGridClaims_CellContentClick;
答案 1 :(得分:2)
VB.net中的“handles”关键字将Function标记为给定事件的侦听器。如果没有“处理DataGridClaims”,则在触发事件时,网格无法知道触发您的函数。
[参见MSDN Doc's] [1] http://msdn.microsoft.com/en-us/library/6k46st1y(v=VS.100).aspx