2

Access データベースのテーブルの名前を表示するフォームがあり、ボタンをクリックすると form2 に移動し、1 つのフィールドの名前を変更するなどの変更を加えます。[OK] をクリックすると、変更がデータベースで行われます。に戻りますform1が、変更は反映されません。

変更を確認するには、プログラムを再起動する必要があります。

form.refresh と form.invalidate を試しましたが、何も機能しません。

スレッド化を行う必要があることをどこかで読みましたが、私は c# が初めてで、スレッド化についてまったく知りません。

誰かがこれを行うためにスレッド化以外の方法を提案できますか? また、スレッド化が唯一の方法である場合は、適切なリソースと例を提案してください。

4

2 に答える 2

0

への参照を更新または渡すコントロールへのアクセサーを作成しForm1ますForm2。アクセサールートを下る場合は、試してみることができForm1ます

public dataGridView
{
    get { return this.dataGridView1; }
    set { this.dataGridView1 = value; }
}

Form2その後、使用して更新できます

Form1 accessForm1 = (Form1)this.Parent;
accessForm1.dataGridView.Update();

注:これも使用して更新DataGridViewするにはForm1

accessForm1.dataGridView.Source = someDataBindingSource;

これが役立つことを願っています。

于 2012-04-06T08:12:59.030 に答える
0

form1基になるデータを更新したからといって、上のデータは変更されません。

データベースからデータを再取得しform1form2.

これを行うには、イベントに登録しform2.Closing、イベント ハンドラーで再フェッチと再入力を行います。

于 2012-04-06T08:08:56.950 に答える