c#DataGridView复制粘贴删除功能

复制代码
//可在dgv中复制、剪切、粘贴、删除数据
        
        /// <summary>
        /// DataGridView复制
        /// </summary>
        /// <param name="dgv">DataGridView实例</param>
        public static void dgvCopy(DataGridView dgv)
        {
            if (dgv.GetCellCount(DataGridViewElementStates.Selected) > 0)
            {
                try
                {
                    Clipboard.SetDataObject(dgv.GetClipboardContent());
                }
                catch (Exception MyEx)
                {
                    MessageBox.Show(MyEx.Message, "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
        }

        /// <summary>
        /// DataGridView剪切
        /// </summary>
        /// <param name="dgv">DataGridView实例</param>
        public static void dgvCut(DataGridView dgv)
        {
            dgvCopy(dgv);
            try
            {
                dgvDel(dgv);
            }
            catch (Exception MyEx)
            {
                MessageBox.Show(MyEx.Message);
            }

        }

        ///<summary>
        /// DataGridView删除内容
        /// </summary>
        /// <param name="dgv">DataGridView实例</param>
        public static void dgvDel(DataGridView dgv)
        {
            try
            {
                int k = dgv.SelectedCells.Count;
                for (int i = 0; i < k; i++)
                {
                    dgv.SelectedCells[i].Value = "";
                }
            }
            catch (Exception MyEx)
            {
                MessageBox.Show(MyEx.Message);
            }
        }

        /// <summary>
        /// DataGridView粘贴
        /// </summary>
        /// <param name="dt">DataGridView数据源</param>
        /// <param name="dgv">DataGridView实例</param>
        public static void dgvPaste(DataGridView dgv)
        {
            try
            {
                //最后一行为新行
                int rowCount = dgv.Rows.Count - 1;
                int colCount = dgv.ColumnCount;
                //获取剪贴板内容
                string pasteText = Clipboard.GetText();
                //判断是否有字符存在
                if (string.IsNullOrEmpty(pasteText))
                    return;
                //以换行符分割的数组
                string[] lines = pasteText.Trim().Split('\n');
                int txtLength = lines.Length;
                
                //Lance.2015-12-03
                int cRowIndex = dgv.SelectedCells[0].RowIndex;
                int cColIndex = dgv.SelectedCells[0].ColumnIndex;
                for (int i = 0; i < txtLength; i++)
                {
                    string[] words = lines[i].Split('\t');
                    for (int j = 0; j < words.Length; j++)
                    {
                        dgv.Rows[cRowIndex + i].Cells[cColIndex + j].Value = words[j];
                    }
                }

            }
            catch (Exception MyEx)
            {
                MessageBox.Show(MyEx.Message);
            }
        }
复制代码

 

复制代码
 Keys key = e.KeyCode;

            //Delete删除内容
            if (key == Keys.Delete)
            {
                TextDaseOperationClass.dgvDel(dataGridView1);
            } 

            if (e.Control!=true)//如果没按Ctrl键
            return;
            switch (key)
            {
                case Keys.C:
                //按下Ctrl+C复制
                TextDaseOperationClass.dgvCopy(dataGridView1);
                break;

                case Keys.V:
                //按下Ctrl+V粘贴
                TextDaseOperationClass.dgvPaste(dataGridView1);
                break;

                case Keys.X:
                //按下Ctrl+V剪切
                TextDaseOperationClass.dgvCut(dataGridView1);
                break;
            }
复制代码

 

posted @   未风  阅读(3004)  评论(1编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示