Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何在gridview中将一行复制到另一行_Vb.net_Winforms_Datagridview - Fatal编程技术网

Vb.net 如何在gridview中将一行复制到另一行

Vb.net 如何在gridview中将一行复制到另一行,vb.net,winforms,datagridview,Vb.net,Winforms,Datagridview,使用VB.Net 我想将一行数据复制到另一行 我正在gridview中使用复选框,如果我单击复选框并按下按钮,然后选择行复制到新单元格(行) 下面的代码用于删除,不用于复制行 代码 上面的代码将错误显示为“提供的行已属于DataGridView控件。” 我的代码怎么了 需要VB.Net代码帮助不能再添加完全相同的行。您将需要创建一个新行,并用您要复制的行中的值填充它,然后将新行添加到grvList.Rows 我不确定每个单元格中都有哪些类型的值,但只要它们是值类型,以下类似的内容就可以工作:

使用VB.Net

我想将一行数据复制到另一行

我正在gridview中使用复选框,如果我单击复选框并按下按钮,然后选择行复制到新单元格(行)

下面的代码用于删除,不用于复制行

代码

上面的代码将错误显示为“提供的行已属于DataGridView控件。”

我的代码怎么了


需要VB.Net代码帮助

不能再添加完全相同的行。您将需要创建一个新行,并用您要复制的行中的值填充它,然后将新行添加到grvList.Rows

我不确定每个单元格中都有哪些类型的值,但只要它们是值类型,以下类似的内容就可以工作:

    For Each m_row As System.Windows.Forms.DataGridViewRow In Me.grvList.Rows
        If m_row.Cells("chksel").Value = True Then
            'Create new row to hold duplicated values
            Dim NewRow As DataRow = grvList.NewRow()
            'loop thru existing rows to copy values
            For i As Integer = 0 To m_row.Cells.Count - 1
                NewRow(i) = m_row.Cells(i).Value
            Next
            'Add newly create row to table
            Me.grvList.Rows.Add(NewRow)
            '  Me.grvList.Rows.Remove(m_row)
        End If
    Next
请记住,如果任何单元格中的项是引用类型,则您仍将引用同一项,而不是创建该项的副本。就像您在定位的同一行上简单地调用add一样

抱歉,我没有注意到这些行是DataGridView行,而不是绑定的datatable。。。在这种情况下,这应该可以做到:

            For Each m_row As System.Windows.Forms.DataGridViewRow In Me.grvList.Rows
                If m_row.Cells("chksel").Value = True Then
                    'Create new row to hold duplicated values
                     Dim NewRow As DataGridViewRow = m_row.Clone
                     'Add newly create row to table
                     Me.grvLIst.Rows.Add(NewRow)
                End If
            Next

不能再添加完全相同的行。您将需要创建一个新行,并用您要复制的行中的值填充它,然后将新行添加到grvList.Rows

我不确定每个单元格中都有哪些类型的值,但只要它们是值类型,以下类似的内容就可以工作:

    For Each m_row As System.Windows.Forms.DataGridViewRow In Me.grvList.Rows
        If m_row.Cells("chksel").Value = True Then
            'Create new row to hold duplicated values
            Dim NewRow As DataRow = grvList.NewRow()
            'loop thru existing rows to copy values
            For i As Integer = 0 To m_row.Cells.Count - 1
                NewRow(i) = m_row.Cells(i).Value
            Next
            'Add newly create row to table
            Me.grvList.Rows.Add(NewRow)
            '  Me.grvList.Rows.Remove(m_row)
        End If
    Next
请记住,如果任何单元格中的项是引用类型,则您仍将引用同一项,而不是创建该项的副本。就像您在定位的同一行上简单地调用add一样

抱歉,我没有注意到这些行是DataGridView行,而不是绑定的datatable。。。在这种情况下,这应该可以做到:

            For Each m_row As System.Windows.Forms.DataGridViewRow In Me.grvList.Rows
                If m_row.Cells("chksel").Value = True Then
                    'Create new row to hold duplicated values
                     Dim NewRow As DataGridViewRow = m_row.Clone
                     'Add newly create row to table
                     Me.grvLIst.Rows.Add(NewRow)
                End If
            Next

上面编辑了一个示例。谢谢,它在这一行“Dim NewRow As DataRow=grvList.NewRow()”上显示了错误。我不知何故错过了for each循环中的类型(由于盲目性),并在此基础上对其进行了更改,以直接编辑datagridview,而不是绑定到网格的datatable。上面编辑了一个示例。谢谢,它在这一行“Dim NewRow As DataRow=grvList.NewRow()”上显示错误。我不知何故错过了for each循环中的类型(由于盲目性),并根据该类型将其更改为直接编辑datagridview,而不是绑定到网格的datatable。