datagridview-cellclick如何操作datagriview的空白行?

问题描述

cellclick如何操作datagriview的空白行?

各位大虾:
小弟有一个技术问题想请教大家,我在做datagridview的cellclick事件时,系统报错,提示超出索引范围。具体是这样子的:
--------------------------------------
单 位 | 姓名 |籍贯 | 团员
---------------------------------------
一班 | 张三 |湖南 | Y
----------------------------------------
二班 |李四 |广西 | N
----------------------------------------
空白行
----------------------------------------
这是datagridview表,因为我以后还要往下加空白行,然后在空白行里面加内容,所以必须要有空白行。

我在datagridview表的cellclick事件中写了一段代码,想点击第一行后实现这样的功能:当“团员”字段的值为Y时,在textbox1中显示“是团员”,不是Y时显示“不是团员”,我的代码是这样子的:
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{

        if (this.dataGridView1.CurrentRow.Cells["column4"].Value.ToString() == "Y")
        {
            textBox1.Text = "是团员";
        }
        else
        {
            textBox1.Text = "不是团员";
        }
    }

在前二行怎么点击都没有问题,但是当我用按钮新增一条空白行在datagridview后,这时再点击空白行就报错,提示超出了索引范围,请各位大虾在我看一下如何解决啊.谢谢啦。

解决方案

判断点击的行索引是否大于rows的count-1

解决方案二:

新后一条空的记录后,还是会报错啊。

时间: 2024-08-08 12:36:19

datagridview-cellclick如何操作datagriview的空白行?的相关文章

求助高手DataGridView的问题 (操作无效,原因是它导致对 SetCurrentCellAddressCore 函数的可重入调用。)

问题描述 voidHandleReceive(inteventID,stringdate,stringtime,intdspID,stringmessage,Imagei1,Imagei2){while(alertTable.Rows.Count>=50)//DataGridView中的报警信息超过50条就删除第一条,不断地往上顶{alertTable.Rows[0].Delete();}DataRowdr=alertTable.NewRow();dr[0]=eventID.ToString()

c#winform中,对DataGridView数据进行操作,一次性保存

需求:不能每加一条数据就操作数据库,要完成所有的数据加入界面,点击保存时才一次性保存. 加载数据时,数据源上可以有数据,并可以在界面上对数据进行增加.修改.删除. 所有操作,在点击保存时,准确地将所需要的操作结果反应到数据库中.   解决思路:先在程序中判断哪些数据要增加到数据库,哪些数据要对数据库中数据进行修改,哪些数据要进行删除. 再循环操作数据库.           #region 一次性判断并获取DataGridViewRow数据的操作情况         /// <summary>

C#中对DatagridView的部分常用操作

C#中对DatagridView部分常用操作 只列出技巧部分,后面会有补充 0(最基本的技巧). 获取某列中的某行(某单元格)中的内容 this.currentposition = this.dataGridView1.BindingContext [this.dataGridView1.DataSource, this.dataGridView1.DataMember].Position; bookContent = this.database.dataSet.Tables[0].Rows [

c# winform 关于datagridview 操作的一些问题

问题描述 c# winform 关于datagridview 操作的一些问题 datagridview 显示数据 没有在控件里面绑定什么值直接写下列sql语句 string sql = "select ID as 序号,Content as 开票内容,AmountTax as 开票税额, InvoicePerson as 开票人,from soure; 然后 this.dgv.DataSource = data.Tables[0]; 执行下 就是下列图片的效果 选中一行我点修改 然后那一行就变成

设置什么属性把DataGridView最后那行空白的行取消了

问题描述 DataGridView最后总是有一行空白的,设置什么属性把那行空白的取消了,谢谢各位 解决方案 解决方案二:你是要去掉DataGridView没有数据时的那个空白行?如果是这样的话就不要binding空的table就好了!但是这样的话title也会没有的!如果是DataGridView有数据但是最后还是有空行的话,那就是你在绑定数据的那个table中多加了一个空行,把那个空行去掉就可以了!解决方案三:ReadOnly=true供你参考解决方案四:引用2楼tonyepaper的回复:

继承窗体时DataGridView无法继承?

问题描述 做窗体继承时,datagridview无法继承,其它的如button.textbox等都可以,请问有没有解决方案呢? 解决方案 解决方案二:datagridview无法继承?怎么无法继承?表现为什么不正常?解决方案三:各位大侠帮帮忙啊!!!!!解决方案四:hbxtlhx:做窗体继承时,窗体中包含datagridview.继承后datagridview不能进行编辑,所有属性都是灰的.用过吗?怎么解决呢?解决方案五:楼主,你把碰到的问题,具体描述下,好找办法解决解决方案六:在线等,不够分继

datagridview显示数据慢

问题描述 从数据库取出数据后用datagridview.rows.add()添加空白行然后再给指定列一行行添加数据但在运行程序显示数据的时候右边滚动条慢慢变短等一条条数据加完了后才显示才157条记录等待时间就那么较长哪位大虾能指点一下该怎么办注:不用绑定数据源不用分页 解决方案 解决方案二:没有人可以回答吗?解决方案三:应该不会这么慢吧?解决方案四:datagridview不可以直接帮顶吗解决方案五:为什么不直接绑定,疑惑.

Winform传统DataGridView和DevExpress控件的GridControl两者表头全选功能的实现

在开发一个个人项目的时候,有客户反映默认GridView多选操作不是很方便和理想,想在列表的左边增加一列可以勾选,并且最好支持列表头部全选的操作,否则数据多的时候一个个勾选要到天荒地老. 基于以上需求,找了不少例子进行比较,并对代码进行测试改进,终于完成了以上的功能了, 并且由于我本身做了多套界面的处理,因此,基于传统的DataGridView全选操作不能少,而且基于DevExpress控件的GridView全选操作也应该支持,呵呵. 无图无真相,下面先上图介绍两种不同的效果,然后在详细介绍代码

datagriedview单元格赋值后的同步问题

问题描述 程序已经具有了直接修改单元格后,与数据库同步的功能(将Grid绑定到dataTable等数据源上,再对dataTable进行保存).就是双击单元格修改好了以后,点击"修改"按钮,可以完成操作.(将Grid绑定到dataTable等数据源上,再对dataTable进行保存的操作都写在button_click里).现在想要在textbox中输入修改值,在失焦的时候(输入后点击"修改"按钮),也能够完成对数据库和datagridview的修改.我在textbox