vb.net datagridview中选择范围,实现ctrl+c/ctrl+v

vb.netdatagridview中选择范围,实现ctrl+c/ctrl+v处理完成马上给分。... vb.net datagridview中选择范围,实现ctrl+c/ctrl+v
处理完成马上给分。
展开
 我来答
tystq
2013-09-26 · TA获得超过1201个赞
知道小有建树答主
回答量:943
采纳率:100%
帮助的人:834万
展开全部
DataGridView在vb.net中的应用详细见附件16. DataGridView选择的部分拷贝至剪贴板

拷贝模式设定

DataGridView1.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText

选中部分拷贝

Clipboard.SetDataObject(DataGridView1.GetClipboardContent())

17.DataGridView粘贴

If DataGridView1.CurrentCell Is Nothing Then

    Return

End If

Dim insertRowIndex As Integer = DataGridView1.CurrentCell.RowIndex

 

Dim pasteText As String = Clipboard.GetText()

If String.IsNullOrEmpty(pasteText) Then

    Return

End If

pasteText = pasteText.Replace(vbCrLf, vbLf)

pasteText = pasteText.Replace(vbCr, vbLf)

pasteText.TrimEnd(New Char() {vbLf})

Dim lines As String() = pasteText.Split(vbLf)

 

Dim isHeader As Boolean = True

For Each line As String In lines

        If isHeader Then

        isHeader = False

    Else

        Dim vals As String() = line.Split(ControlChars.Tab)

        If vals.Length - 1 <> DataGridView1.ColumnCount Then

            Throw New ApplicationException("列数が违います。")

        End If

        Dim row As DataGridViewRow = DataGridView1.Rows(insertRowIndex)

        row.HeaderCell.Value = vals(0)

        Dim i As Integer

        For i = 0 To row.Cells.Count - 1

            row.Cells(i).Value = vals((i + 1))

        Next i

        insertRowIndex += 1

    End If

Next line

更多追问追答
追问
哥,我要做的是在datagirdview中鼠标拖动,选择几行几列,进行复制粘贴。这个不行啊。
追答
SendKeys.Send("^{C}") 发送CLTR+C命令-----复制
'中间延迟200ms左右
SendKeys.Send("^{v}") '向活动程序EXCEL发送CLTR+V命令-----粘贴
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式