VS 2010中的DataGridView单元格单击事件

时间:2011-01-07 19:30:55

标签: vb.net datagridview .net-4.0

我是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

2 个答案:

答案 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