c#DataGridView复制粘贴删除功能
//可在dgv中复制、剪切、粘贴、删除数据
/// <summary>
/// DataGridView复制
/// </summary>
/// <param name="dgv">DataGridView实例</param>
public static void dgvCopy(DataGridView dgv)
{
if (dgv.GetCellCount(DataGridViewElementStates.Selected) > )
{
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 = ; 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 - ;
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[].RowIndex;
int cColIndex = dgv.SelectedCells[].ColumnIndex;
for (int i = ; i < txtLength; i++)
{
string[] words = lines[i].Split('\t');
for (int j = ; 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;
}
c#DataGridView复制粘贴删除功能的更多相关文章
- Oracle SQL Developer 编辑区不能删除,后退,空格,复制粘贴等功能都失效的解决办法
Oracle SQL Developer 编辑区不能删除,后退,空格,复制粘贴等功能都失效的解决办法 解决: 打开菜单并选择Tools-prefrence-Accelerators-Load Pres ...
- vim复制,粘贴,删除,撤销,替换,光标移动等用法
我接触linux的时候,用的是nano这个文本编辑器,个人觉得他的最大优点就是方便,快速.打开文件,修改文件,到退出都十分的快速,简单.这一点上比vi,vim要强,但是nano不能显示彩色字,不能进行 ...
- IE屏蔽鼠标右键、禁止复制粘贴等功能
<body oncontextmenu="return false" onselectstart="return false" ondragstart=& ...
- Java递归实现操作系统文件的复制、粘贴和删除功能
通过Java IO递归实现操作系统对文件的复制.粘贴和删除功能,剪切=复制+粘贴+删除 代码示例: import java.io.BufferedInputStream; import java.io ...
- vi--文本编辑常用快捷键之复制-粘贴-替换-删除
这几天刚开始接触vi编辑器,慢慢开始熟悉vi,但是还是感觉诸多不便,比如说复制粘贴删除操作不能用鼠标总是感觉不自在,而且我一般习惯用方向键移动光标,更增加了操作的复杂度,今天在网上搜索了一下,vim编 ...
- 通过如何通过js实现复制粘贴功能
在ie中window.clipboardData(剪切板对象)是可以被获取,所以利用这个方法我们可以实现在IE当中复制粘贴的功能,demo如下! <html> <head> & ...
- Eclipse/MyEclipse中使用复制粘贴功能卡的解决办法
最近在MyEclipse中编辑代码时,使用快捷键进行复制粘贴,经常会导致编辑器短暂的停顿,光标不跟随,居然反应不过来,几近假死. 想来想去应该是编辑上的什么配置或者是IDE的什么功能导致,于是进入Pr ...
- Vim 安装、配置及复制粘贴操作
1.安装:sudo apt-get install vim 2.配置:cd ~ #进入用户主目录 touch .vimrc #.后缀文件不可见 vi .vimrc #打开文件 输入: set cind ...
- 转载:vim的复制,删除,粘贴,块操作以及快速替换功能
掌握如下命令有什么好办法,我可以告诉你唯手熟尔!!多看多练对于VIM而言,复制,删除,粘贴的操作应该是非常多的.这次也做一个总结,关于处理VIM下的复制,删除,粘贴等操作.学会使用帮助文件,命令的帮助 ...
随机推荐
- ASP.NET form method "post" and "get"
https://forums.asp.net/t/1796310.aspx?ASP+NET+form+method+post+and+get+ GET: 1) Data is appended to ...
- iOS7实现带文本输入框的UIAlertView及获取TextField文本内容
if (customAlertView==nil) { customAlertView = [[UIAlertView alloc] initWithTitle:@"自定义服务器地址&quo ...
- js捕获页面回车事件
1.javascript版 document.onkeyup = function (e) { if (window.event)//如果window.event对象存在,就以此事件对象为准 e = ...
- crontab任务调度
基本语法 crontab [选项] 选项: -e: 编辑crontab定时任务 -l: 查询crontab任务 -r: 删除当前用户所有的crontab任务 2)参数说明 [root ...
- Gram矩阵 迁移学习 one-shot 之类
格拉姆矩阵是由内积空间中的向量两两内积而得.格拉姆矩阵在向量为随机的情况下也是协方差矩阵.每个数字都来自于一个特定滤波器在特定位置的卷积,因此每个数字代表一个特征的强度,而Gram计算的实际上是两两特 ...
- Net Core链接数据库
原文 在Windows下,相信大家分分钟都可以搞定.而初次接触.net core + mysql可能需要注意些细节.首先打开vs2017新建一个asp.net core项目(选Web应用程序), 然后 ...
- vue生命周期-学习心得
每个Vue实例在被创建之前都要经过一系列的初始化过程,也就是从开始创建.初始化数据.编译模板.挂载Dom.渲染→更新→渲染.销毁等一系列过程,这个过程就是vue的生命周期. 1 vue生命周期图 {: ...
- python 面向对象 类方法,静态方法,property
property 内置装饰器函数 只在面向对象使用 把方法当初属性使用(方法不加参数) 例子: class Rectangle: def __init__(self,long,wide,color): ...
- WPF 内部的5个窗口之 MediaContextNotificationWindow
原文:WPF 内部的5个窗口之 MediaContextNotificationWindow 本文告诉大家在 WPF 内部的5个窗口的 MediaContextNotificationWindow 是 ...
- Linux下库文件的设置 (/usr/bin/ld: cannot find -lxxx 的解决办法)
在软件编译过程中,经常会碰到类似这样的编译错误: /usr/bin/ld: cannot find -lhdf5 这表示找不到库文件 libhdf5.so,若是其它库文件,则是 cannot find ...