2016-12-01 49 views
0

我只想知道你們是如何重新加載其他形式的數據在C#中使用自定義控制之間。重新加載GridView C#

讓我澄清一下東西,我有一個Form1具有gridview,我有一個用戶控件附加到它,當點擊它會打開Form2。現在,我想從Form2刷新Form1

我可以通過在Form2構造函數中使用參數而不使用自定義控件來實現相同的結果,但我不知道如何設計涉及自定義控件的解決方案。

下面是我對如何從其他形式的重載Form1的GridView控件代碼

public class Form2 
{ 
    private Form1 _form1; 
    public Form2(Form1 db):this() 
    { 
     _form1=db; 
    } 

    void ReloadForm1() 
    { 
    _form1.Reload() 
    } 
} 

在Form1上

public class Form 
{ 
    void Click() 
    { 
     Form2 f=new Form2(this); 
     f.show() 
    } 

    public void Reload() 
    { 
     //Load Data 
    } 

} 

此代碼的工作,我只是需要幫助,如何來達到同樣的結果與自定義控件有關。

謝謝。

+0

您是否嘗試過編碼的東西做這個?顯示您的代碼 – ItamarG3

+0

使用FormClosing事件,以便在Form 2關閉時刷新Form1中的gridview – Takarii

+0

「重新加載其他表單中的數據」意味着什麼?我們不知道這意味着什麼。 –

回答

0

你可以嘗試這樣的

public class Form 
{ 
    void Click() 
    { 
     Form2 f=new Form2(this); 
     f.closing += form2Closing; 
     f.show() 
    } 

    public void Reload() 
    { 
     //Load Data 
    } 

    private void form2Closing(object sender, System.ComponentModel.CancelEventArgs e) 
    { 
     Reload() 
    } 

} 
+0

我不調用form1內的Form2,我從一個userControl只調用form1調用form2。希望清楚的事情出來。 –

+0

因此,在usercontrol上添加一個事件處理程序,usercontrol將獲得事件form2Closing,並將提交表單 – gmetax

0

可以調用重載的東西()的窗口2關閉後 - 見下:

(Form1上)

public class Form 
{ 
    void Click() 
    { 
     Form2 f=new Form2(this); 
     f.ShowDialog(); 
     reload(); 
    } 

    public void Reload() 
    { 
     //Load Data 
    } 

} 
+0

的事件,該事件將在顯示後重新加載,而不是在表單關閉後 – gmetax