DataGridView发生异常

 

在GridView中绑定 List 出现异常。

-------------

在做GridView中绑定 List时出现异常,此异常有时显示,有时不显示,经过几次测试,发现异常出现前的操作时 从list中移除数据。

有结合提示的异常  IndexOutOfRangeException ,索引 6 没有值,发现索引6 为删除前,集合中的最大下标。

所以解决方案如下:

从list中移除对象后,立即执行绑定操作。为了慎重起见,绑定钱先绑定空对象。

list.Remove(obj);

datagridView.DataSouce = null;

dtagridView.DataSouce = list;

 

转载于:https://www.cnblogs.com/Theladyflower/archive/2013/05/22/3093111.html

C#中,当你使用dataGridView控件显示数据时,偶尔可能会遇到行刷新显示异常的情况。这可能是由于多种原因造成的,比如数据源更新后没有正确地通知控件进行刷新,或者是数据绑定时出现的问题。以下是一些常见的解决方法: 1. 使用`BindingSource`管理数据源:使用`BindingSource`作为数据源可以简化数据更新和刷新的过程。当`BindingSource`中的数据发生变化时,它会自动通知绑定的控件进行更新。如果数据变化后行显示异常,可以尝试重新设置`BindingSource`的位置。 ```csharp bindingSource.ResetCurrentItem(); dataGridView.CurrentCell = null; ``` 2. 正确更新数据源:当你更新了绑定的数据源后,确保调用了`DataChanged`事件或更新了`BindingSource`的`DataSource`属性,以便控件能够识别数据变化。 ```csharp // 如果是集合类型的数据源 ((BindingList<T>)bindingSource.DataSource).ResetBindings(); // 如果是DataTable类型的数据源 dataTable.AcceptChanges(); bindingSource.DataSource = dataTable; ``` 3. 清除并重新绑定数据源:当遇到行刷新显示异常时,彻底清除当前数据源然后重新绑定也是一种有效的解决方案。 ```csharp bindingSource.DataSource = null; bindingSource.DataSource = new List<YourDataType>(yourNewDataList); ``` 4. 强制刷新数据:有时候需要手动触发数据的刷新操作,可以通过调用`Refresh`方法来实现。 ```csharp dataGridView.Refresh(); ``` 5. 处理特定异常:如果问题依旧存在,可能需要检查是否有特定的异常情况影响了刷新过程,比如特定的单元格数据处理逻辑导致的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值