Как скопировать содержимое одного DataGridview в другую форму DataGridview - PullRequest
0 голосов
/ 15 апреля 2019

Как скопировать содержимое одного DataGridview в другой DataGridview, которое в другой форме

For i As Integer = DataGridView1.Rows.Count - 1 To 0 Step -1
    With DataGridView1.Rows(i)
        DataGridView2.Rows.Insert(0, .Cells(0).Value, .Cells(1).Value, .Cells(2).Value, .Cells(3).Value)
    End With
Next

1 Ответ

0 голосов
/ 15 апреля 2019

См. этот ответ , который уже охватывает копирование из одного DataGridView в другой.

Я взял код и конвертировал в vb.net используя онлайн-конвертер .

Чтобы этот код работал, создайте новый проект с двумя формами (Form1, Form2), каждая из которых имеет DataGridView (обе с именем DataGridView1). Поместите кнопку в Form1 (Button1). Затем вставьте код в соответствующий файл кода каждой формы.

Form1

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        DataGridView1.DataSource = {"A", "B", "C"}.Select(Function(s) New With {.Value = s}).ToList()
        Form2.Show()
    End Sub
    Public Sub Foo()
        Form2.Bar(DataGridView1)
    End Sub
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Foo()
    End Sub
End Class

Form2

Public Class Form2
    Public Sub Bar(dgv_org As DataGridView)
        Dim dgv_copy = DataGridView1
        Try
            If dgv_copy.Columns.Count = 0 Then

                For Each dgvc As DataGridViewColumn In dgv_org.Columns
                    dgv_copy.Columns.Add(TryCast(dgvc.Clone(), DataGridViewColumn))
                Next
            End If
            Dim row As DataGridViewRow = New DataGridViewRow()
            For i As Integer = 0 To dgv_org.Rows.Count - 1
                row = CType(dgv_org.Rows(i).Clone(), DataGridViewRow)
                Dim intColIndex As Integer = 0
                For Each cell As DataGridViewCell In dgv_org.Rows(i).Cells
                    row.Cells(intColIndex).Value = cell.Value
                    intColIndex += 1
                Next
                dgv_copy.Rows.Add(row)
            Next
            dgv_copy.AllowUserToAddRows = False
            dgv_copy.Refresh()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub
End Class
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...