复制DataGridView

时间:2014-11-13 11:03:30

标签: vb.net datagridview

我试图获取DataGridView的副本。

Public Sub CopyDataView(ByVal inGrid As DataGridView,
                        ByVal inPrintHiddenCols As Boolean)
    DataGridView1 = inGrid

然后我改变了DataGridView1的配置,然后执行:

    DataGridView1.Refresh()
    DataGridView1.Visible = True

我对DataGridView1所做的问题已经完成,只有原始网格被更改和刷新。尽管事实上原始网格是通过ByVal。

我已经尝试逐行处理传递的网格,列,但是我收到了错误

"Provided column already belongs to the DataGridView control"

DataGridView1已初始化

    Cursor.Current = Cursors.WaitCursor
    Try
        DataGridView1.Columns.Clear()
        DataGridView1.Rows.Clear()
        DataGridView1.AutoSize = True
        DataGridView1.AutoGenerateColumns = False
        DataGridView1.RowHeadersVisible = False

            For Each col As DataGridViewColumn In inGrid.Columns
            If col.Width = 0 Or _
               col.Displayed = False And _
               Not (inPrintHiddenCols) Then
                SkipCells.Add(col.Index)
            Else
                Dim c As New DataGridViewColumn
                c = col
                DataGridView1.Columns.Add(c)  ' <----------------------
                ColWidth_CSV.Add(modFunctions.GetWidthOfText(col.Width, f))
            End If
        Next

在要添加的第一列上。我已经搜索了这个错误的所有实例,但是唯一的解决方案是&#34;复制数据源&#34;,没有DataSource,这是一个生成的表。我无法找到将DataGridView数据转换为数据源的方法。

我错过了什么?有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我最终这样做了:

Dim c As New DataGridViewColumn
c = col.Clone
DataGridView1.Columns.Add(c)

我现在似乎工作正常。