2012-04-06 61 views
2

我有一個窗體顯示訪問數據庫中的表中的名稱,然後在一個按鈕單擊,我移動到form2我做了一些更改,如重命名一個字段,單擊確定,更改是在數據庫中製作的,我回到form1,但是這個變化沒有反映出來。窗體不在C中刷新#

要查看更改,我必須重新啓動程序。

我試過form.refresh和form.invalidate,但沒有任何工作。

我在某處讀過線程必須完成,但我是c#的新手,並不知道線程。

有人可以建議除了線程以外的任何方式來做到這一點。 如果線程是唯一的方法,請建議一些好的資源和例子。

+0

你試過'gridView1.Refresh();'? – levi 2012-04-06 08:17:22

回答

0

關於form1的數據不會因爲您更新了基礎數據而改變。

您需要從數據庫中重新提取數據,並在從form2返回時重新填充form1

您可以通過註冊form2.Closing事件並在事件處理程序中執行重新提取和重新填充來完成此操作。

0

爲您希望更新的控件創建一個訪問器,或將Form1的引用傳遞給Form2。如果你去存取根,你可以嘗試在Form1

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

然後,您可以從Form2更新使用

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

注:更新DataGridViewForm1使用本以及

accessForm1.dataGridView.Source = someDataBindingSource; 

我希望這有助於。