Esto es lo que hago yo:
1-En la form (frmOrdenTemplado) donde vas a llenar tu datagrid manual tengo:
Código:
Public dt As New DataTable
'Variable pública.
Private Shared ChildInstance As frmOrdenTemplado = Nothing
'controla que sólo exista una instancia del formulario.
Public Shared Function Instance() As frmOrdenTemplado
If ChildInstance Is Nothing OrElse ChildInstance.IsDisposed = True Then
ChildInstance = New frmOrdenTemplado
End If
ChildInstance.BringToFront()
Return ChildInstance
End Function
En el evento LOAD de la form ejecuto CrearTabla
Código:
Public Sub CrearTabla()
Dim frmOrdenTemplado As frmOrdenTemplado = frmOrdenTemplado.Instance
frmOrdenTemplado.dt.Columns.Add(New DataColumn("CodOrdTrabajoTemplado", GetType(Integer)))
frmOrdenTemplado.dt.Columns.Add(New DataColumn("Cantidad", GetType(Integer)))
End Sub
Y luego en algun evento por ejemplo el usuario apreta AGREGAR llamo LlenarTabla
Código:
Public Sub LlenarTabla(ByVal Codigo, ByVal Cantidad)
Dim frmOrdenTemplado As frmOrdenTemplado = frmOrdenTemplado.Instance
Dim dr As DataRow
dr = frmOrdenTemplado.dt.NewRow()
dr("CodOrdTrabajoTemplado") = Codigo
dr("Cantidad") = Cantidad
frmOrdenTemplado.dt.Rows.Add(dr)
Return
End Sub
Finalmente lo asigno al datagridview ejecutando:
Código:
Public Function LlenarGridItems(ByVal Grid As DataGridView, ByVal dt As DataTable)
'llena un grid con un datatable
'Llenar y asignar datasource la datagridview
'da.Fill(dt)
Grid.DataSource = dt
'Actualizo total registros
'CantidadRegistros = dt.Rows.Count
Return Nothing
End Function