datagridview删除某行之后行dataGridView1.CurrentRow.Index问题[精华]

问题描述

我把dataGridView1绑定到textbox,当我删除datagridview1某行记录后,再在dataGridView1_CellClick事件写dataGridView1.Rows[dataGridView1.CurrentRow.Index].Selected=true;然后把当前选中行绑定到textbox就出错"不能通过已删除的行访问该行的信息。"应该是行索引变了的问题,怎样解决

解决方案

解决方案二:
dataGridView1.Rows[dataGridView1.CurrentRow.Index-1].Selected=true;
解决方案三:
由于当前行已经删除掉了,你再选择该行肯定是不行的(该行已经不存在了),可以判断选择上一行(当删除的不为第一行时).
解决方案四:
关键是可能在datagridview用户自定义删除啊,可能两三百条记录删除其中的一部分呢,
解决方案五:
判断:_currentIndex为删除前所选中的索引if(dataGridView1.Rows.Count>0){dataGridView1.ClearSelection();当选中的索引大于或等于所有行时,说明删除的为最后行,所以在这里要减1if(_currentIndex>=dataGridView1.Rows.Count){dataGridView1.Rows[dataGridView1.Rows.Count-1].Cells["HdayID"].Selected=true;}else{dataGridView1.Rows[_currentIndex].Cells["HdayID"].Selected=true;}}
解决方案六:
从后往前遍历删完一次刷新一次再遍历
解决方案七:
privatevoiddelButton_Click(objectsender,EventArgse){dataGridView1.Rows.Remove(dataGridView1.CurrentRow);dataGridView1.Rows[dataGridView1.CurrentRow.Index].Selected=true;prdtcode.text=ds.Tables[0].Rows[dataGridView1.CurrentRow.Index]["prdtcode"].ToString().Trim();unittext.Text=ds.Tables[0].Rows[dataGridView1.CurrentRow.Index]["m1_baunit"].ToString().Trim();}}这是删除事件,删除之后再选择刚删除行的下一行就出现"不能通过已删除的行访问该行的信息"当然数据也不能绑定到textbox,如果不删除的话便可以绑定
解决方案八:
datatalbe删除后只是状态改变了,其实索引还存在的,而datagridview的索引就与datatable不一致了此时再取datagridview删除后的一些行值就会出现问题,怎样解决

时间: 2024-12-03 23:48:06

datagridview删除某行之后行dataGridView1.CurrentRow.Index问题[精华]的相关文章

datagridview shift键选中多行checkbox的checked为true

问题描述 datagridview shift键选中多行checkbox的checked为true datagridview shift键选中多行checkbox的checked为true 解决方案 如果要实现多选,可以设置datagridview的MuiltSelect=true; 解决方案二: winform DataGridView实现用shift多选checkbox 背景:winform,c#,Datagridview,checkbox 实现自由多选 保证DataGridview的Mul

datagridview-从外部数据导入DATAGRIDVIEW,如何从第5行开始导入?

问题描述 从外部数据导入DATAGRIDVIEW,如何从第5行开始导入? 如题,怎么设置从第3行开始导入?如下代码该怎么改正,请各位指教. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim intColCount As Integer = 0 Dim blnFlag As Boolean = True Dim mydt As

DataGridView 控制项的资料行中至少有一行没有储存格样板。

问题描述 C#源码如下//新建DataGridviewDataGridViewdgv=newDataGridView();BodyPanel.Controls.Add(dgv);dgv.Dock=System.Windows.Forms.DockStyle.Fill;dgv.ColumnHeadersVisible=false;//影藏表头dgv.AllowUserToOrderColumns=false;//不排序dgv.AllowUserToAddRows=false;//去掉默认添加列dg

在asp.net中,用按钮删除选定的gridview行,怎么删呢

问题描述    商品编号名称单价数量数据绑定数据绑定数据绑定数据绑定数据绑定数据绑定数据绑定数据绑定数据绑定数据绑定数据绑定数据绑定数据绑定数据绑定数据绑定数据绑定数据绑定数据绑定数据绑定数据绑定数据绑定数据绑定数据绑定数据绑定数据绑定数据绑定数据绑定数据绑定数据绑定数据绑定12SqlDataSource-SqlDataSource1温馨提示:更改购买数量后,请单击"重新计算"按钮进行更新!数量后,请单击"重新计算"按钮进行更新!总价: 解决方案 解决方案二:首先获

dataGridView怎么判断是否 选择行

问题描述 dataGridView怎么判断是否选择行尽量不用CHEKEBOX就这样判断不知道有办法没?因为我没查询就点删除按钮的时候就抱错我想判断他有没有选择行................没有的话提示有的话执行 解决方案 解决方案二:判断dataGridView.SelectedRows.Count的值来判断是否选择了!解决方案三:如果有BindingSource可以用if(this.bindingSource.Current!=null)

html-实现点击 图标动态增加一行或多行,删除一行或多行

问题描述 实现点击 图标动态增加一行或多行,删除一行或多行 <td colspan =""4""><input class=""w100"" id=""meetingdate1"" name=""meetingdate"" type=""text"" validateGroup="

php删除文本文件中重复行的方法

  php删除文本文件中重复行的方法         本文实例讲述了php删除文本文件中重复行的方法.分享给大家供大家参考.具体分析如下: 这个php函数用来删除文件中的重复行,还可以指定是否忽略大小写,和指定换行符 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 5

python 正则匹配到特定字符串,并删除字符串所在的行,并且返回所在行的第一个数字ID

问题描述 python 正则匹配到特定字符串,并删除字符串所在的行,并且返回所在行的第一个数字ID 如利用正则匹配到"受到xx影响",则删除字符串所在行,并返回2877,2881.a.txt内容如下:2877 a3 1-1 9:16部分地区受到雾霾影响出行不便. 2878 a2 1-1 9:42床前明月光,疑是地上霜.2880 a2 1-1 10:09举头望明月,低头思故乡.2881 a3 1-1 9:16受到事故影响出行不便. 希望得到的结果是:"2877"匹配到

database-点击按钮删除数据库中的行

问题描述 点击按钮删除数据库中的行 我做一个应用程序:当重启 activity,点击一个按钮时需要把插入表中的行删除.我试了下面的方法,但是不能得到预期的效果,相同的行再次插入.如何解决这个问题呢? public void deleteDatabase(String databaseName) { context.deleteDatabase(databaseName); } 和 public void deleteAll(){ db.execSQL(""TRUNCATE TABLE&