Die zwei Funktionen zum Clonen eines DatagridView gestatten das 1:1-Kopieren der Werte als auch der Formate. Hier die Funktionen: ''' <summary> ''' Clonen eines DatagridView (Clone ist ungebunden, spiegelt nur die Daten der Source) ''' </summary> ''' <param name="theDGVsrc">das Quell-DatagridView</param> ''' <param name="theDGVdest">das Ziel-DatagridView</param> Public Sub CloneDGV(ByVal theDGVsrc As DataGridView, ByVal theDGVdest As DataGridView) Dim dr As DataGridViewRow, i As Short With theDGVdest ' initialisieren des Ziel-DGV .RowCount = 1 .ColumnCount = theDGVsrc.ColumnCount ' zunächst die Spaltenstile clonen For i = 0 To theDGVsrc.ColumnCount - 1 .Columns(i).HeaderText = theDGVsrc.Columns(i).HeaderText .Columns(i).DefaultCellStyle = theDGVsrc.Columns(i).DefaultCellStyle.Clone Next ' jetzt alle Zeilen clonen For i = 0 To theDGVsrc.RowCount - 1 ' geclonte Zeile erzeugen und dem Ziel-DGV zufügen dr = CloneDGVRowWithValues(theDGVsrc.Rows(i)) .Rows.Add(dr) Next End With End Sub ''' <summary> ''' Clonen einer DatagridView-Row; ausschließlich Werte ''' </summary> ''' <param name="theRow">eine Zeile des DatagridView</param> ''' <returns>geclonte Zeile</returns> Public Function CloneDGVRowWithValues(ByVal theRow As DataGridViewRow) As DataGridViewRow CloneDGVRowWithValues = CType(theRow.Clone(), DataGridViewRow) ' die Werte aus den Zellen der Quell-Zeile clonen For i As Short = 0 To theRow.Cells.Count - 1 CloneDGVRowWithValues.Cells(i).Value = theRow.Cells(i).Value Next Return CloneDGVRowWithValues End Function Allerdings muss man noch dazu sagen, dass DGV-globale Eigenschaften von diesen Funktionen nicht kopiert werden. Damit meine ich beispielsweise in etwa solche Eigenschaften wie: With dgv .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells .AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells .AllowUserToOrderColumns = False .AllowUserToDeleteRows = False .AllowUserToAddRows = False .RowHeadersDefaultCellStyle.Font = .DefaultCellStyle.Font .DefaultCellStyle.SelectionBackColor = .DefaultCellStyle.BackColor .DefaultCellStyle.SelectionForeColor = Color.Black For Each c As DataGridViewColumn In .Columns c.SortMode = DataGridViewColumnSortMode.NotSortable Next .ReadOnly = True End With o.a. Die kann man so duplizieren: myDestDGV = mySrcDGV und danach die obigen Funktionen anwenden. Dieser Tipp wurde bereits 14.328 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
Neu! sevDTA 3.0 Pro SEPA mit Kontonummernprüfung Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |