C# dataGridView选中一行右键出现菜单,对数据进行操作(datatable的操作)
1.为dataGridView绑定数据,设置数据选定一行
this.dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; //选中整行可在属性中修改
datagridview.AutoGenerateColumns = false;//不让datagridview自动生成列,可在属性中修改
datagridview.AllowUserToAddRows = true;//禁止自动生成行可在属性中修改
2.添加contextMenuStrip控件并绑定dataGridView
3.设置选中一行时右键单击出现菜单
//dataGridView选中一行时右键出现菜单
private void dataGridView1_CellMouseUp(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
if (e.RowIndex >= 0)
{
dataGridView1.ClearSelection();
dataGridView1.Rows[e.RowIndex].Selected = true;
dataGridView1.CurrentCell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
contextMenuStrip1.Show(MousePosition.X, MousePosition.Y);
}
}
}
4.获取选中行某一单元格的值
//判断单元格是否为空
if(this.dataGridView1.Rows[i].Cells[i].Value == null)
{
//do something
}
//判断datagridview 有没有选中行if(dataGridView1.SelectedRows.Count > 0){//如果选中执行代码
int aa= DataGridView1.CurrentRow.Index; //获得包含当前单元格的行的索引
}else{MessageBox.Show("请选中后操作");
}//取消默认选中行,在绑定数据后会默认选中第一行 只需要在绑定后加以下任意一行代码即可dataGridView1.ClearSelection();//dataGridView1.CurrentCell = null;//dataGridView1.Rows[0].Selected = false;
//在事件中为datagridview新增一行
int index = this.datagridview.Rows.Add();
this.dgvPayPhase.Rows[index].Cells[0].Value =测试;//可直接为某个单元格赋值//当控件的DataSource绑定数据源后,便不能直接添加新行了(可以删除、修改) 下面这种方式是针对已经对datagridview绑定过数据源后添加一行的方式((DataTable)sourceGridView.DataSource).Rows.Add();
//根据条件设置dataGridView1行的颜色
int intGrade = Convert.ToInt32(this.dataGridView1.Rows[e.RowIndex].Cells["dgvAge"].Value);if (intGrade ==30){dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Red;}else if(intGrade==25){dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Brown;}
//check多选框 可多条选择 前提是datagridview中有一列的类型是DataGridViewCheckBoxColumnStringBuilder sb = new StringBuilder();int count = Convert.ToInt32(MaintenanceGV.Rows.Count.ToString());for (int i = 0; i < count; i++){//如果DataGridView是可编辑的,将数据提交,否则处于编辑状态的行无法取到 MaintenanceGV.EndEdit();DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)MaintenanceGV.Rows[i].Cells["check"];Boolean flag = Convert.ToBoolean(checkCell.Value);if (flag == true) //查找被选择的数据行 {//从 DATAGRIDVIEW 中获取数据项 string z_zcode = MaintenanceGV.Rows[i].Cells[1].Value.ToString().Trim();sb.AppendLine(z_zcode);}}MessageBox.Show(sb.ToString());
foreach (DataRow dr in Accdt.Rows){//对datatable中字段判断是否为空 判断datatable中某列是否有空值,如果有为其赋值if (dr["name"] == DBNull.Value || dr["name"].ToString() == ""){dr["name"] = "空";}if (dr["sex"] == DBNull.Value || dr["sex"].ToString() == ""){dr["sex"] = "空";}}
//获取datatable一列中所有的值 去重 去除一列中值得重复项public string[] GetNamesFromDataTable(DataTable dataTable){DataView dv = dataTable.DefaultView;dataTable = dv.ToTable(true, "jcxm");//jcxm是datatable的列名string[] names = new string[dataTable.Rows.Count];for (int i = 0; i < names.Length; i++){names[i] = dataTable.Rows[i][0].ToString();}return names;}
5.对数据进行操作
6.遍历datagridview
foreach (DataGridViewRow dgr in dgv.Rows){if (Convert.ToString(dgr.Cells[6].Value) != "成功"){string aa= Convert.ToString(dgr.Cells["编号"].Value); } }
C# dataGridView选中一行右键出现菜单,对数据进行操作(datatable的操作)相关推荐
- DataGridView 选中一行后,保持前景色(颜色,字体)不变
最近在做项目的时候,发现了一个问题,就是当DataGridView选中一行的时候,选中中的颜色均变为DefaultCellStyle中的SelectionForeColor.但是问题是,我已经根据该行 ...
- DataGridView 选中一行不变色
private void textGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e){e.Cel ...
- 解决鼠标右键点击后菜单延迟现象
今日非常倒霉,早上起来一开机.不,应该是说早上起来一按电脑电源键,屏幕倒是亮了,可进不去桌面啊,只能卡在疑难解答界面.这是电脑第二次莫名其妙这样了,我保证昨天晚上啥也没干,嘿嘿.尝试一番操作后,还 ...
- DataGridview单击某个单元格选中一行
DataGridview如何单击某个单元格选中一行? 代码的方式设置 this.dataGridView1.SelectionMode = DataGridViewSelectionMode.Full ...
- 【editplus经常用的快捷键】Editplus 选中一行ctrl+r,Edit 合并行 Ctrl+Shift+J 合并选定行 删除当前行
Editplus 选中一行: ctrl+r Editplus 复制一行: ctrl+r选择行,然后ctrl+c复制. 复制一行到下一行中:Editplus有:Ctrl+j 复制上一行的一个字符到当前行 ...
- 右键计算机菜单,右键菜单设置方法步骤【图文】
鼠标使用的时间越长,右键菜单就会随着软件的增多,变得越来越长,这不仅让我们在使用右键时,找到想要点击的选项变得不那么方便,也会让电脑运行变得缓慢.我们常常会清理电脑系统的缓存垃圾,鼠标的右键就像电脑的 ...
- html文件如何设置右键菜单,windows系统使用小技巧,创建属于自己的右键新建菜单-右键菜单设置...
在计算机的使用过程中,用户会经常的使用一些文件件,而为了用户的方便,Windows系统在桌面的右键快捷菜单设置了一些内置的文件类型,比如:"WinZip"."文本文档&q ...
- 关于安装Office之后,右键新建菜单中没有Word、PPT、Excel选项
文章目录 前言 一.个人感觉比较好用的方法: 二.该问题产生的原因 总结 前言 今天刚重装完系统,发现安装Office之后,右键新建菜单中没有Word.PPT.Excel选项.百度了下,相关问题的 ...
- easyui中在datagrid中右键出现菜单
onRowContextMenu,easyui提供了这个方法,来实现右键出现菜单.其中给了三个参数:e,index,row. 大多数人会出现这样的问题,你发现,当你右键的时候,总是浏览器的菜单出现 o ...
- 基于C#的AE二次开发之图层右键菜单打开属性表及图层相关操作
基于C#的AE二次开发之图层右键菜单打开属性表及图层相关操作 我的开发环境为ArcGIS Engine 10.2与Visual studio2010.主地图名称为axMapControl1,Toc目录 ...
最新文章
- 实用计算机技术选修,实用计算机组装与维护选修课学习心得
- linux下安装nginx详细步骤_mac下安装nginx
- babymips(下) 寒假逆向生涯(14/100)
- 【面经】字节跳动后端开发视频架构方向一面二面
- 使用flex和bison实现的sql引擎解析
- 一道内存分配的面试题
- web服务器中启用作业储存_如何在Kubernetes中启用无服务器计算
- 华罗庚先生教会我如何学习
- 【感悟】本书书名无法描述本书内容(一)
- Kubernetes 开发流程中的三个关键步骤
- php-fpm.conf 配置文件详解
- 在一个字符串中找到第一个只出现一次的字符,并返回它的位置
- 如何把桌面路径设置到D盘
- 三刷红宝书之 JavaScript 的引用类型
- 控制 input 输入框不能输入中文,即不能在输入框中使用输入法
- 专题:2019世界移动通信大会(MWC)精彩纷呈,中国企业各出大招
- MSF外网渗透+shellcode免杀
- 两种经过验证的设计相结合:带有低温探针台的 8425 型直流霍尔系统
- ts里变量定义any报错Unexpected any. Specify a different type.
- vue的混入mixin拙见
热门文章
- 注册(五)之请求处理
- I - 数塔(动态规划)数塔问题
- x86系统微型计算机,80x86/Pentium 微型计算机原理及应用(第3版)
- linux 文件查找_Linux中的文件内查找小技巧
- c++ struct与class
- java集合的相互转化(map,set,list,array)
- mysql 多表查询详解_(转)Mysql 多表查询详解
- python解释器的提示符是shell嘛_windows python3.2 shell环境(python叫做解释器)
- 支付宝 应用网关和授权回调地址怎么配置?
- tp3.2 配置相关说明