2014-03-27 64 views
0

我有一個程序用於管理數據庫。我的數據庫表格內容顯示在form1上的listview中。我正在使用form2來編輯數據庫。
form2打開時form1仍然可見。有兩種形式在form1上打開並運行form1的方法

但是,當關閉form2時,更新數據庫後,我希望form1刷新它的listview以顯示新更新的信息。

我有一個方法,刷新listviewform1。我如何從form2執行此操作?

我已將方法設置爲公開,但我仍無法從form2訪問它。

回答

1

如果我理解正確的問題,一個辦法是,當你創建Form2註冊事件:

var form2 = new Form2(); 
form2.Closed += (sender, args) => this.RefreshListView(); 

當form2關閉時,將觸發Form.Closed事件。使用事件做這件事的好處之一是Form2不需要知道關於Form1減少代碼耦合的任何信息。

+0

感謝你的工作,魅力。 這裏是我的代碼: private void btnAddHomeworker_Click(object sender,EventArgs e) AddHomeworker ah = new AddHomeworker(); ah.FormClosing + =(sender1,args)=> this.AllHomeworkers(); ah.Show(); } – Russell

1

傳遞Form1中的實例,以窗口2的構造:

Form2 form2 = new Form2(this); 

在窗口2的構造,存儲參考到Form1對象作爲成員變量。

然後,從窗口2的相關部分,只需調用Form1中的方法:

form1.RefreshListView(); 
相關問題