我从事 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?