[英]Calling a method from another Form in C#
我希望當我以另一種形式( Form2
)插入或更新記錄時, Form1
上的DataGridView
應該在每次操作后自動刷新(調用btnRefresh
),或者最好等到所有更改操作都完成,並更新DataGridView
表單Form2
的結束事件隨着所有的變化。
我相信VB.NET這是用Form1.DataGridView.Refresh
實現的,但我不確定在C#中。 我被告知我使用屬性將Form1
上的DataGridView
的引用傳遞給Form2
但由於我是C#的新手,我不知道如何操作。 我該如何解決這個問題?
我的刷新按鈕代碼:
private void btnRefresh_Click(object sender, EventArgs e)
{
GVThesis.DataSource = thesisRepository.GetThesis();
GVThesis.Refresh();
}
Firs,將刷新代碼包裝到自己的方法中,並從click事件處理程序方法中調用它,如下所示:
private void btnRefresh_Click(object sender, EventArgs e)
{
this.RefreshData();
}
public void RefreshData()
{
GVThesis.DataSource = thesisRepository.GetThesis();
GVThesis.Refresh();
}
然后,假設您正在從Form1實例化並啟動新表單(Form2),只需進入Form2的代碼並創建一個新的構造函數重載,它將接受對Form1的引用,並將其存儲在私有變量中,如此:
public partial class Form2 : Form
{
private Form1 frm1;
public Form2()
{
InitializeComponent();
}
public Form2(Form1 otherForm)
{
InitializeComponent();
this.frm1 = otherForm;
}
}
然后你可以在Form2中的任何地方調用“刷新”,如下所示:
this.frm1.RefreshData();
編輯:
我創建了一個小樣本,我無法在這里上傳...但這里是VS中程序本身的截圖,以及運行它和執行功能的結果截圖...希望這會有所幫助。
程序(如果看起來太小,請縮放視圖)
結果:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.