在網絡中搜索了下,發現使用接口來刷新父窗體,自己認為比較方便。也比較好容易理解。所以我也特此寫一片博客進行記錄,對自己進行深入的學習和方便再回頭來復習。很多東西都是自己以前做過的,但是很長一段時間之後不代表就能很順心的能寫出來,所以我只能用博客文章記錄我的點滴,下次翻閱的時候至少我會想起來在某個項目中使用到了這個情景。
首先定義一個接口:
using System;
using System.Collections.Generic;
using System.Text;
namespace WinFormSendValue
{
public interface IForm
{
void RefreshForm();
}
}
當然為了能實現刷新,你首先得必須要在刷新的窗體中繼承具有刷新功能的接口。。
public partial class KuCunYiDongDetailsAddFrm : Form, IForm
{
...................代碼省略
}
其次你的必須在此窗體中實現接口的方法
public void RefreshForm()
{
this.Refresh();
LoadBodyData(sendOrderNumber);//刷新單身
LoadDetailsDate(sendOrderNumber);//明細刷新,即刷新dataGRIDVIEW
}
然後在你需要打開子窗體的事件中調用調用此方法。特別注意的是這裡必須把需要打開的子窗體的Owner屬性設置為本窗體(父)
private void btnBodyAddDetails_Click(object sender, EventArgs e)
{
singleAdd = new SingleDetailsAddingFrm();
singleAdd.Owner = this;//設置OWNER屬性
RefreshForm();//刷新父窗體
singleAdd.ShowDialog();
new SingleDetailsAddingFrm().ShowDialog();//轉到庫存異動單身明細添加窗體
}
最關鍵也是最後的一步就是必須在窗體中調用代碼如下,不解釋了。
(this.Owner as IForm).RefreshForm();
這句可以放在你需要的任何地方。比如關閉事件中。