Winform 滚动条卡死,无法滑动的问题,已解决

本文介绍了一种在多线程环境下更新DataGridView的解决方案。当从非UI线程尝试更新DataGridView时,可能会遇到滚动条失效及显示异常的问题。通过在Form中引入代理,并使用Invoke方法,可以确保所有与DataGridView相关的操作都在主线程中执行,从而避免此类问题。

我遇到的情况是,用了一个线程,再线程中进行更新DataGridView中的数据,以及提示内容,线程处理结束后,滚动条无法滚动,而且会变黑。

如果你使用了Control.CheckForIllegalCrossThreadCalls = false;这句话也是不管用的。

解决方法:

1.在该Form中增加代理:private delegate void InvokeHandler();

 

Thread_TongBu = new Thread(TongBu_data_New);
 Thread_TongBu.IsBackground = true;

然后,在线程的处理方法  TongBu_data_New中,凡是与DataGridView有关的更新都这样写:

this.Invoke(new InvokeHandler(delegate ()
{
    //你的逻辑
}));

这样就可以完美解决了

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值