我有一個程序用於管理數據庫。我的數據庫表格內容顯示在form1上的listview
中。我正在使用form2
來編輯數據庫。
當form2
打開時form1
仍然可見。有兩種形式在form1上打開並運行form1的方法
但是,當關閉form2時,更新數據庫後,我希望form1刷新它的listview
以顯示新更新的信息。
我有一個方法,刷新listview
在form1
。我如何從form2
執行此操作?
我已將方法設置爲公開,但我仍無法從form2
訪問它。
我有一個程序用於管理數據庫。我的數據庫表格內容顯示在form1上的listview
中。我正在使用form2
來編輯數據庫。
當form2
打開時form1
仍然可見。有兩種形式在form1上打開並運行form1的方法
但是,當關閉form2時,更新數據庫後,我希望form1刷新它的listview
以顯示新更新的信息。
我有一個方法,刷新listview
在form1
。我如何從form2
執行此操作?
我已將方法設置爲公開,但我仍無法從form2
訪問它。
如果我理解正確的問題,一個辦法是,當你創建Form2
註冊事件:
var form2 = new Form2();
form2.Closed += (sender, args) => this.RefreshListView();
當form2關閉時,將觸發Form.Closed
事件。使用事件做這件事的好處之一是Form2
不需要知道關於Form1
減少代碼耦合的任何信息。
傳遞Form1中的實例,以窗口2的構造:
Form2 form2 = new Form2(this);
在窗口2的構造,存儲參考到Form1對象作爲成員變量。
然後,從窗口2的相關部分,只需調用Form1中的方法:
form1.RefreshListView();
感謝你的工作,魅力。 這裏是我的代碼: private void btnAddHomeworker_Click(object sender,EventArgs e) AddHomeworker ah = new AddHomeworker(); ah.FormClosing + =(sender1,args)=> this.AllHomeworkers(); ah.Show(); } – Russell