Copiar contenido de la papelera en celdas del Datagridview
Hola programadores, al igual como habia hecho hace algun tiempo el Copiar Contenido de Datagridview al portapapeles ---->
http://jossm03.blogspot.com/2012/06/copiar-contenido-datagridview-al.html Ahora hago todo lo contrario es decir copiar de celdas ya sean de Access o Excel y pegarlas en la Datagridview.
http://jossm03.blogspot.com/2012/06/copiar-contenido-datagridview-al.html Ahora hago todo lo contrario es decir copiar de celdas ya sean de Access o Excel y pegarlas en la Datagridview.
Ademas al ejemplo le incluyo algunas funciones o trucos básicos del DatagridView para contar filas,numerar filas fijas, menú popup(menu con clik derecho), etc.
Mi captura en modo diseño
Imports System.Text.RegularExpressions
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' migrid.Rows.Add(numfilas.Value)
Try
migrid.Rows.Add(200) ' agrego 200 filas
Catch ex As Exception
MsgBox(ex.ToString()) ' controlo excepciones
End Try
End Sub
Public Sub pegar()
Try
Dim o As DataObject = DirectCast(Clipboard.GetDataObject(), DataObject)
If o.GetDataPresent(DataFormats.Text) Then
Dim rowOfInterest As Integer = migrid.CurrentCell.RowIndex()
Dim selectedRows As String() = Regex.Split(o.GetData(DataFormats.Text).ToString().TrimEnd(vbCr & vbLf.ToCharArray()), vbCr & vbLf)
If selectedRows Is Nothing OrElse selectedRows.Length = 0 Then
Return
End If
For Each row As String In selectedRows
If rowOfInterest >= migrid.Rows.Count Then
Exit For
End If
Try
Dim data As String() = Regex.Split(row, vbTab)
Dim col As Integer = migrid.CurrentCell.ColumnIndex
For Each ob As String In data
If col >= migrid.Columns.Count Then
Exit For
End If
If ob IsNot Nothing Then
migrid(col, rowOfInterest).Value = Convert.ChangeType(ob, migrid(col, rowOfInterest).ValueType)
End If
col += 1
Next
Catch enterException As Exception
End Try
rowOfInterest += 1
Next
End If
Catch ex As Exception
MsgBox("Error al pegar datos. No hay suficientes celdas", vbCritical, "Error")
End Try
End Sub
Private Sub PegarToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PegarToolStripMenuItem.Click
pegar()
End Sub
Public Function contar_registros(ByRef grid As DataGridView) As String
Dim i As String = grid.Rows.Count
Return "Número de filas= " & i
End Function
Public Sub EliminarRows(ByRef grid As DataGridView)
Try
grid.Rows.RemoveAt(grid.CurrentRow.Index)
Catch ex As Exception
End Try
End Sub
Private Sub migrid_RowsAdded(sender As Object, e As DataGridViewRowsAddedEventArgs) Handles migrid.RowsAdded
lblnum.Text = (contar_registros(migrid))
Num_filas_Fijas(migrid)
End Sub
Private Sub migrid_RowsRemoved(sender As Object, e As DataGridViewRowsRemovedEventArgs) Handles migrid.RowsRemoved
lblnum.Text = (contar_registros(migrid))
End Sub
Private Sub EliminarFilasToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles EliminarFilasToolStripMenuItem.Click
EliminarRows(migrid)
End Sub
Public Sub Num_filas_Fijas(ByRef grid As DataGridView)
For i As Integer = 0 To grid.Rows.Count - 1
grid.Rows(i).HeaderCell.Value = (i + 1).ToString
Next i
End Sub
End Class
Espero que les sea de utilidad, nos vemos en otro nuevo post.!
Mi proyecto:
https://mega.co.nz/#!0M12CbDK!5ePRw7XEUbBYj9qhOJ8Ic-ZzURzG3yHCR-ri-JnS89w
Comentarios
Publicar un comentario