2011-01-07 12 views
3

私はDataGridコントロールの新機能ですが、なぜ最初のコードブロックが機能するのか不思議ですが、2番目のコードブロックは機能しません。 (私が見ることができる唯一のこと がDataGridClaimsを処理している 構文VS 2010のDataGridViewセルクリックイベント

ブロック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

ようになりVB.netで「ハンドル」のキーワードは、指定されたイベントへのリスナーとしての機能をマーク。 "Handles DataGridClaims"がなければ、グリッドはイベントがトリガされたときにあなたの関数を起動する方法を知ることができません。

[MSDNドクさんを参照してください] [1] http://msdn.microsoft.com/en-us/library/6k46st1y(v=VS.100).aspx

2

私はVB.NETとあまりにも慣れていないけど、CellContentClickセル内のコンテンツをクリックしたときに発生するイベントです。

プログラムがこれがイベントであることを理解するためには、VB.NETでキーワードHandlesを使用します。これは、イベントハンドラメソッド自体のイベントハンドラへのバインディングの結線を可能にします。

これは、C#で+=と等価であると

DataGridClaims.CellContentClick += DataGridClaims_CellContentClick;