0

私はC#プロジェクトに取り組んでいます

私のプロジェクトには、2 つの Windowns フォーム (フォーム A とフォーム B) があります。フォームAはフォームBの親です。また、フォームAにDataGridViewがあり、フォームBにボタンがあります。

このボタンがクリックされたとき (フォーム B) 。フォーム A の DataGridView はリロードする必要があります。このために、フォーム B で BackgroundWorker を作成し、フォーム A から LoadDataGridview メソッドを呼び出します。

しかし、私の問題は次のとおりです。

時々 (常にではありません) ボタンをクリックすると、問題が発生し (null オブジェクト)、DataGridview 行が消え、Diameter に 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 に答える