2016-01-19 1 views
-1

У меня есть приложение, в котором оно разделено на вкладки. До 4 вкладок могут иметь один и тот же DataGridView, но с разными данными.Динамическая ячейка Нажмите на DataGridView VB.NET

Я динамически создавать вкладки и DataGrid взгляды, и они названы «Entitlements1», «Entitlements2» и т.д.

Я добавил Cell Double Click Event Handler для DataGridView, и она работает для обоих DataGridViews на обоих вкладки, однако как я могу определить, какой DataGridView он запустил событие?

Мой код:

Public Shared Sub EntitlementsDGV(ByVal DriverNo As Integer) 

     Dim entdgv As New List(Of DataTable) 
     entdgv.Add(New DataTable) 
     entdgv.Add(New DataTable) 
     entdgv.Add(New DataTable) 
     entdgv.Add(New DataTable) 
     entdgv.Add(New DataTable) 

     'Find Driver Tab Control 
     Dim DriverTabCtrl = Functions.FindControl(Results, "DriverTab" & DriverNo) 
     'Find GroupBox Control 
     Dim GroupBoxCtrl = Functions.FindControl(DriverTabCtrl, "EntitlementGrpBx" & DriverNo) 
     'Find DataGridView 
     Dim DGVCtrl As DataGridView = Functions.FindControl(GroupBoxCtrl, "Entitlements" & DriverNo) 

     entdgv(DriverNo) = Results.EntitlementsTbl.Clone 
     Dim result() As DataRow = Results.EntitlementsTbl.Select("Driver = " & DriverNo & "") 
     For Each row As DataRow In result 
      entdgv(DriverNo).Rows.Add(row(0), row(1), row(2), row(3), row(4), row(5)) 
     Next 

     DGVCtrl.DataSource = entdgv(DriverNo) 
     DGVCtrl.Columns(DGVCtrl.Columns.Count - 1).Visible = False 

     AddHandler DGVCtrl.CellDoubleClick, AddressOf EntitlementDblClick 

    End Sub 

    Public Shared Sub EntitlementDblClick(sender As Object, e As DataGridViewCellEventArgs) 
     MsgBox("Entitlement Box Double Click") 
    End Sub 

Это код, как я динамически добавить DataGridView

Dim NewDGV As New DataGridView 
      NewDGV.Name = "Entitlements" & DriverNo 
      NewDGV.Location = New Point(1, 1) 
      DGVSetup(NewDGV) 

      NewGrpBx.Controls.Add(NewDGV) 

ответ

2
Public Shared Sub EntitlementDblClick(sender As Object, e As DataGridViewCellEventArgs) 

     MsgBox("Entitlement Box Double Click") 

     Dim dgv As DataGridView = DirectCast(sender, DataGridView) 

    End Sub 

DGV будет DataGridView, откуда событие был уволен

+0

Wow это просто! lol cheers @Markus – Lynchie

+0

рад, что это помогло, если вы не возражаете принять ответ? – Markus

+0

жаль, что я пробовал раньше, но потому, что вы были так быстры, он дал мне 5-минутное предупреждение. – Lynchie