DataGridView数据复制粘贴

本文介绍了一种在DataGridView与剪贴板之间进行数据交互的方法。包括如何将DataGridView的数据复制到剪贴板,以及如何从剪贴板读取数据并粘贴到DataGridView中,特别注意避免在DataGridView的中间插入数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      剪贴数据到剪贴板上
         private void SetDataGridVIewToClipboard
         {
             Clipboard.SetDataObject(DataGridView1.GetClipboardContent());
         }

     将剪贴版上的数据保存到DataGridVIew上,不能从中间粘贴

   private void SetClipboardToDataGridVIew()
        {
            //当前单元格是否选择的判断
            if (DataGridView2.CurrentCell == null)
            {
                return;
            }
            int insertRowIndex = DataGridView2.CurrentCell.RowIndex;
            
            // 获取剪切板的内容,并按行分割
            string pasteText = Clipboard.GetText();
            if(string.IsNullOrEmpty(pasteText))
            {
                return;
            }
            pasteText = pasteText.Replace(" ", " ");
            pasteText = pasteText.Replace(' ', ' ');
            pasteText.TrimEnd(new char[] { ' ' });
            string[] lines = pasteText.Split(new string[] { "\r\n" },StringSplitOptions.None);
            bool isHeader = false;
            for (int r = 0; r < lines.Length; r++)
            {

                DataRow dr = ((DataTable)DataGridView2.DataSource).NewRow();

                ((DataTable)DataGridView2.DataSource).Rows.Add(dr);
            }


            foreach (string line in lines)
            {
                insertRowIndex++;
                // 是否是列头
                if (isHeader)
                {
                    isHeader = false;
                    continue;
                }
                // 按 Tab 分割数据
                string[] vals = line.Split(new char[] { '\t' });
                
                DataGridViewRow row = DataGridView2.Rows[insertRowIndex];
               
                int insertColumnsIndex = DataGridView2.CurrentCell.ColumnIndex;
                for (int i = 0; i < vals.Length; i++)
                {
                    
                    row.Cells[insertColumnsIndex].Value = vals[i];
                    insertColumnsIndex++;
                }
                // DataGridView的行索引+1
            
            }
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值