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的操作)相关推荐

  1. DataGridView 选中一行后,保持前景色(颜色,字体)不变

    最近在做项目的时候,发现了一个问题,就是当DataGridView选中一行的时候,选中中的颜色均变为DefaultCellStyle中的SelectionForeColor.但是问题是,我已经根据该行 ...

  2. DataGridView 选中一行不变色

    private void textGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e){e.Cel ...

  3. 解决鼠标右键点击后菜单延迟现象

      今日非常倒霉,早上起来一开机.不,应该是说早上起来一按电脑电源键,屏幕倒是亮了,可进不去桌面啊,只能卡在疑难解答界面.这是电脑第二次莫名其妙这样了,我保证昨天晚上啥也没干,嘿嘿.尝试一番操作后,还 ...

  4. DataGridview单击某个单元格选中一行

    DataGridview如何单击某个单元格选中一行? 代码的方式设置 this.dataGridView1.SelectionMode = DataGridViewSelectionMode.Full ...

  5. 【editplus经常用的快捷键】Editplus 选中一行ctrl+r,Edit 合并行 Ctrl+Shift+J 合并选定行 删除当前行

    Editplus 选中一行: ctrl+r Editplus 复制一行: ctrl+r选择行,然后ctrl+c复制. 复制一行到下一行中:Editplus有:Ctrl+j 复制上一行的一个字符到当前行 ...

  6. 右键计算机菜单,右键菜单设置方法步骤【图文】

    鼠标使用的时间越长,右键菜单就会随着软件的增多,变得越来越长,这不仅让我们在使用右键时,找到想要点击的选项变得不那么方便,也会让电脑运行变得缓慢.我们常常会清理电脑系统的缓存垃圾,鼠标的右键就像电脑的 ...

  7. html文件如何设置右键菜单,windows系统使用小技巧,创建属于自己的右键新建菜单-右键菜单设置...

    在计算机的使用过程中,用户会经常的使用一些文件件,而为了用户的方便,Windows系统在桌面的右键快捷菜单设置了一些内置的文件类型,比如:"WinZip"."文本文档&q ...

  8. 关于安装Office之后,右键新建菜单中没有Word、PPT、Excel选项

    文章目录 前言 一.个人感觉比较好用的方法: 二.该问题产生的原因 总结 前言   今天刚重装完系统,发现安装Office之后,右键新建菜单中没有Word.PPT.Excel选项.百度了下,相关问题的 ...

  9. easyui中在datagrid中右键出现菜单

    onRowContextMenu,easyui提供了这个方法,来实现右键出现菜单.其中给了三个参数:e,index,row. 大多数人会出现这样的问题,你发现,当你右键的时候,总是浏览器的菜单出现 o ...

  10. 基于C#的AE二次开发之图层右键菜单打开属性表及图层相关操作

    基于C#的AE二次开发之图层右键菜单打开属性表及图层相关操作 我的开发环境为ArcGIS Engine 10.2与Visual studio2010.主地图名称为axMapControl1,Toc目录 ...

最新文章

  1. 实用计算机技术选修,实用计算机组装与维护选修课学习心得
  2. linux下安装nginx详细步骤_mac下安装nginx
  3. babymips(下) 寒假逆向生涯(14/100)
  4. 【面经】字节跳动后端开发视频架构方向一面二面
  5. 使用flex和bison实现的sql引擎解析
  6. 一道内存分配的面试题
  7. web服务器中启用作业储存_如何在Kubernetes中启用无服务器计算
  8. 华罗庚先生教会我如何学习
  9. 【感悟】本书书名无法描述本书内容(一)
  10. Kubernetes 开发流程中的三个关键步骤
  11. php-fpm.conf 配置文件详解
  12. 在一个字符串中找到第一个只出现一次的字符,并返回它的位置
  13. 如何把桌面路径设置到D盘
  14. 三刷红宝书之 JavaScript 的引用类型
  15. 控制 input 输入框不能输入中文,即不能在输入框中使用输入法
  16. 专题:2019世界移动通信大会(MWC)精彩纷呈,中国企业各出大招
  17. MSF外网渗透+shellcode免杀
  18. 两种经过验证的设计相结合:带有低温探针台的 8425 型直流霍尔系统
  19. ts里变量定义any报错Unexpected any. Specify a different type.
  20. vue的混入mixin拙见

热门文章

  1. 注册(五)之请求处理
  2. I - 数塔(动态规划)数塔问题
  3. x86系统微型计算机,80x86/Pentium 微型计算机原理及应用(第3版)
  4. linux 文件查找_Linux中的文件内查找小技巧
  5. c++ struct与class
  6. java集合的相互转化(map,set,list,array)
  7. mysql 多表查询详解_(转)Mysql 多表查询详解
  8. python解释器的提示符是shell嘛_windows python3.2 shell环境(python叫做解释器)
  9. 支付宝 应用网关和授权回调地址怎么配置?
  10. tp3.2 配置相关说明