WinForm的DataGridView 下拉滚动条消失

代码如下:

//这样写  

Thread th = new Thread(() => {
this.CheckTable(dataFileDB,dataDB, dt);//通过多线程给dt(datatable)赋值
this.Invoke(new Action(() => {
MessageBox.Show("加载完毕");
}));
});
th.Start();
dgvShow.DataSource = dt;

虽然能够赋值能够,但是下拉框消息

Thread th = new Thread(() => {
this.CheckTable(dataFileDB,dataDB, dt);//通过多线程给dt(datatable)赋值
this.Invoke(new Action(() => {
MessageBox.Show("加载完毕");

dgvShow.DataSource = dt;
}));
});
th.Start();
或者 以下写法:

Thread th = new Thread(() => {
this.CheckTable(dataFileDB,dataDB, dt);//通过多线程给dt(datatable)赋值
this.Invoke(new Action(() => {
MessageBox.Show("加载完毕");

dgvShow.DataSource=null;

dgvShow.DataSource = dt;
}));
});
th.Start();

dgvShow.DataSource = dt;

问题原因:由于DataGridView是主线程创建的,在子线程数据绑定是要提交回主线程

WinForm的DataGridView 下拉滚动条消失

上一篇:win10更新后VM 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VM 的方法


下一篇:PowerDesigner生成C#实体类代码模板设置,生成属性,添加摘要summary