簡體   English   中英

從C#中的另一個Form調用方法#

[英]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中程序本身的截圖,以及運行它和執行功能的結果截圖...希望這會有所幫助。

程序(如果看起來太小,請縮放視圖) VS 2010中的程序


結果: Form1上的一個函數,從Form2調用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM