dbgridview内操作粘贴,复制,等量复制,增量复制
1. 复制
DataGridViewSelectedCellCollection ds;
ds = dataGridView1.SelectedCells;
DataGridViewSelectedRowCollection dr = dataGridView1.SelectedRows;
DataGridViewSelectedColumnCollection dc = dataGridView1.SelectedColumns;
row1 = dataGridView1.SelectedCells[dataGridView1.SelectedCells.Count - 1].RowIndex; //起始行
col1 = dataGridView1.SelectedCells[dataGridView1.SelectedCells.Count - 1].ColumnIndex;//起始列
row2 = dataGridView1.CurrentCell.RowIndex;//终止行
col2 = dataGridView1.CurrentCell.ColumnIndex;//终止列
rowcounts = row2 - row1 + 1;//选中行数
colcounts = col2 - col1 + 1;//选中列数
selcells = new string[rowcounts, colcounts];//定义一个二维数组,保存复制后的数据
for (int i = 0; i < rowcounts; i++)
for (int k = 0; k < colcounts; k++)
{
if (dataGridView1.Rows[row1 + i].Cells[col1 + k].Value.ToString() == "")
selcells[i, k] = "";
else
selcells[i, k] = dataGridView1.Rows[row1 + i].Cells[col1 + k].Value.ToString();
}
Console.WriteLine("{0},{1},{2},{3}\r\n", row1, col1, row2, col2);
2. 粘贴
row2 = dataGridView1.CurrentCell.RowIndex;
col2 = dataGridView1.CurrentCell.ColumnIndex;
for (int i = 0; i < rowcounts; i++)
for (int k = 0; k < colcounts; k++)
{
dataGridView1.Rows[row2 + i].Cells[col2 + k].Value = selcells[i, k];
}
3. 等量复制
row1 = dataGridView1.SelectedCells[dataGridView1.SelectedCells.Count - 1].RowIndex; //起始行
col1 = dataGridView1.SelectedCells[dataGridView1.SelectedCells.Count - 1].ColumnIndex;//起始列
row2 = dataGridView1.CurrentCell.RowIndex;//终止行
col2 = dataGridView1.CurrentCell.ColumnIndex;//终止列
rowcounts = row2 - row1 + 1;//选中行数
colcounts = col2 - col1 + 1;//选中列数
selcells = new string[rowcounts, colcounts];//定义一个二维数组,保存复制后的数据
if (colcounts > 1) return;
for (int i = 0; i < rowcounts; i++)
{
for (int k = 0; k < colcounts; k++)
{
dataGridView1.Rows[row1 + i].Cells[col1 + k].Value = dataGridView1.Rows[row1].Cells[col1].Value;
Console.WriteLine("{0},{1}\r\n", row1 + i, col1 + k);
}
}
4. 增量复制
try
{
row1 = dataGridView1.SelectedCells[dataGridView1.SelectedCells.Count - 1].RowIndex; //起始行
col1 = dataGridView1.SelectedCells[dataGridView1.SelectedCells.Count - 1].ColumnIndex;//起始列
row2 = dataGridView1.CurrentCell.RowIndex;//终止行
col2 = dataGridView1.CurrentCell.ColumnIndex;//终止列
rowcounts = row2 - row1 + 1;//选中行数
colcounts = col2 - col1 + 1;//选中列数
selcells = new string[rowcounts, colcounts];//定义一个二维数组,保存复制后的数据
if (colcounts > 1) return;
string v1, v2;
v1 = dataGridView1.Rows[row1].Cells[col1].Value.ToString();
v2 = dataGridView1.Rows[row1 + 1].Cells[col1].Value.ToString();
int startpoint = 0, endpoint = 0;
//找到字符串右面的数字部分
for (int i = 0; i < v1.Length; i++)
{
string tmp = v1.Substring(v1.Length - i - 1, 1);
if (IsNumeric(tmp))
{
startpoint = v1.Length - 1 - i;
continue;
}
else
{
break;
}
}
int startnum = Convert.ToInt16(v1.Substring(startpoint, v1.Length - startpoint));//第一个数字的位置
string startstr = v1.Substring(0, startpoint);//除去数字部分后的内容;
for (int i = 0; i < rowcounts; i++)
{
for (int k = 0; k < colcounts; k++)
{
//将数字部分+1,和原来的非数字部分合并;
dataGridView1.Rows[row1 + i].Cells[col1 + k].Value = startstr + Convert.ToString(startnum + i);
//Console.WriteLine("{0},{1}\r\n", row1 + i, col1 + k);
}
}
}
catch { }
dbgridview内操作粘贴,复制,等量复制,增量复制相关推荐
- 【Java文件操作(三)】递归复制文件夹内所有文件
我的博客--Java文件操作系列 [Java文件操作(一)]递归打印文件目录 [Java文件操作(二)]删除文件夹,但保留其内部文件 [Java文件操作(三)]递归复制文件夹内所有文件 [Java文件 ...
- 并发增量复制垃圾回收 (Concurrent and Incremental Copying GC) 和虚拟内存应用
本文是对 6.S081 课程中 VM applications 论文阅读中对虚拟内存能应用于 Garbage Collection 的笔记.主要记录垃圾回收的一些算法和解释论文的应用点.内容是从最简单 ...
- linux集群自动化脚本和增量复制
linux集群自动化脚本和增量复制 Linux集群shell自动化脚本和集群增量增量复制 xcall.sh代码: xcall.sh脚本解释: xsync.sh代码: xsync.sh脚本解释: 自定义 ...
- 如何将电脑复制的内容粘贴进MobaXterm?如何复制粘贴
MobaXterm内的复制 复制1:用鼠标左键选中文本,可以在随意地区点击右键,然后在非右键点出属性区的任何地方点击左键一下,就复制上了: 复制2:或者按ctrl+c 电脑主机端复制的内容粘贴 set ...
- Numpy 整体复制、按块复制、向量化操作、寻找缺失值、填充缺失值
1. 整体复制和按块复制 已知数组: In [17]: a = np.array([1,2,3])In [18]: 返回如下数组: array([1, 1, 1, 2, 2, 2, 3, 3, 3, ...
- 全量复制 增量复制 异步复制
全量复制 master执行bgsave,在本地生成一份rdb快照文件 master node将rdb快照文件发送给salve node,如果rdb复制时间超过60秒(repl-timeout),那么s ...
- rsync增量复制命令用法和守护进程的配置
实验系统 rhel6.5 从本地到本地 <========> cp rsync -avz src dst rsync -avz src/ dst 从远程到本地 r ...
- linux剪切到另一个文件夹,linux下文件夹操作常见命令如创建、复制、剪切、重命名、清空和删除命令 实例说明...
linux下文件夹操作常见命令如创建.复制.剪切.重命名.清空和删除命令 实例说明,在home目录下有wwwroot目录,wwwroot下有sinozzz目录,即/home/wwwroot/sinoz ...
- windows粘贴板失效,不能复制粘贴解决
windows粘贴板失效,不能复制粘贴解决 windows粘贴板失效 windows粘贴板失效 之前遇到过几次粘贴板失效,检索答案后,90%的都是重启粘贴板进程,但效果却不尽人意,记录一个我自己试过后 ...
最新文章
- 解决bootstrap下的图片自适应问题
- 免费的网络推广教大家新站点前期优化如何进行?
- Myxls导出excel报表
- python做exe开发教程_python做exe开发教程
- how to deal with Demodex
- 使用valgrind检测内存问题
- MySql 复习SQL基础
- request.getAttribute()和request.getParameter()区别
- 【现代软件工程】第一次作业——词频统计
- dubbo实现两个系统之间的通信
- E-Prime 软件中常用的 inline 语句
- 【转】VS2015安装教程(带图解+下载地址+超详细)
- 遗传算法求解带时间窗的VRP问题(python)
- 开源的文件服务器有哪些,开源文件服务器
- 对入门使用者比较友好的视频剪辑工具推荐
- 算法学习:501.二叉搜索树中的众数
- C++ new 动态内存 对象初始化
- 在OpenCV里学习常见问题汇编27
- 2021年甘肃省安全员C证报名考试及甘肃省安全员C证考试报名
- JS 0~~100以内能被3整除也能被5整除的个数和总和