0

我从事 C# 项目

在我的项目中,我有 2 个窗口表格(表格 A 和表格 B)。并且表单 A 是表单 B 的父级。另外,我在表单 A 中有一个 DataGridView,在表单 B 上有一个按钮。

单击此按钮时(在表单 B 中)。表单 A 中的 DataGridView 必须重新加载。为此,我在表单 B 中创建了一个 BackgroundWorker,并从表单 A 调用 LoadDataGridview 方法。

但我的问题是:

有时(并非总是)单击按钮时出现问题(空对象)并且 DataGridview 行消失,并且在直径中可见 2 条红线。

我的 LoadDataGridview 方法是这样的:

public void LoadDataGridview()
{

MyMethod.DGV.SaveDataGridViewMetaData(dgvPersons);


        objDataViewPersons = SqlServerDB.SqlMethod.GetContentOfTableWithDataView("Persons");

        objDataViewPersons.Table.Columns.Add("Department2", typeof(string));            

        if (objDataViewPersons.Table.Rows.Count == 0)
        {
            btnEditPerson.Enabled = false;
            btnLastPerson.Enabled = false;
            btnShow.Enabled = false;
            btnPrint.Enabled = false;
        }

        foreach (DataRow drcurrent in objDataViewPersons.Table.Rows)
        {
            drcurrent["Department2"] = GlobalVar.CmbControl.GetNam(ComboBoxControl.ListName.Department, ComboBoxControl.ListInput.ID, drcurrent["Department"].ToString());
        }

        objBindingSource.DataSource = objDataViewPersons;

        MyMethod.DGV.RestoreDataGridViewMetaData(dgvPersons);
    }

如何快速且无错误地重新加载 DataGridView?

4

1 回答 1

0

我会考虑创建用户控件。

用户控件是一种制作自定义、可重用组件的方法。用户控件可以包含其他控件,但必须由表单承载。

因此,通过这样做,您可以创建单独的控件来管理每个数据网格。

查看此链接,了解它们的用途和用途:-

http://msdn.microsoft.com/en-us/library/aa302342.aspx

于 2012-07-09T09:49:37.090 回答