1. 程式人生 > >子窗體重新整理父窗體使用介面模式

子窗體重新整理父窗體使用介面模式

在網路中搜索了下,發現使用介面來重新整理父窗體,自己認為比較方便。也比較好容易理解。所以我也特此寫一片部落格進行記錄,對自己進行深入的學習和方便再回頭來複習。很多東西都是自己以前做過的,但是很長一段時間之後不代表就能很順心的能寫出來,所以我只能用部落格文章記錄我的點滴,下次翻閱的時候至少我會想起來在某個專案中使用到了這個情景。

首先定義一個介面:

using System; using System.Collections.Generic; using System.Text; namespace WinFormSendValue { publicinterface IForm {
void RefreshForm(); } }

當然為了能實現重新整理,你首先得必須要在重新整理的窗體中繼承具有重新整理功能的介面。。

   public partial class KuCunYiDongDetailsAddFrm : Form, IForm
    {

   ...................程式碼省略

   }

其次你的必須在此窗體中實現介面的方法

publicvoid RefreshForm() { this.Refresh(); LoadBodyData(sendOrderNumber);
//重新整理單身 LoadDetailsDate(sendOrderNumber);//明細重新整理,即重新整理dataGRIDVIEW }

然後在你需要開啟子窗體的事件中呼叫呼叫此方法。特別注意的是這裡必須把需要開啟的子窗體的Owner屬性設定為本窗體(父)

privatevoid btnBodyAddDetails_Click(object sender, EventArgs e) { singleAdd =new SingleDetailsAddingFrm(); singleAdd.Owner
=this;//設定OWNER屬性 RefreshForm();//重新整理父窗體 singleAdd.ShowDialog(); new SingleDetailsAddingFrm().ShowDialog();//轉到庫存異動單身明細新增窗體 }

最關鍵也是最後的一步就是必須在窗體中呼叫程式碼如下,不解釋了。

   (this.Owner as IForm).RefreshForm();

這句可以放在你需要的任何地方。比如關閉事件中。