• 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是主线程创建的,在子线程数据绑定是要提交回主线程

  • 相关阅读:
    MySQL 复制
    MySQL 复制
    MySQL 复制
    MySQL 复制
    Setup Factory 读取安装包的配置文件
    [转]VC传递消息sendmessage
    JQuery.getJSON 没反应
    C#使用SendMessage传递字符串
    C# 注册表修改 立即生效 [转]
    c#开源项目[转]
  • 原文地址:https://www.cnblogs.com/wwr01/p/12518359.html
Copyright © 2020-2023  润新知