[英]C# Calling a method from another Form
嗨,我有2個表格Form1和Form2
Form1有一個表,有我的記錄,並且在Form1中有一個Void用於刷新表。
Form2是我的插入表單,我是將數據插入sqlserver。我想要在將記錄保存到Form2中以運行Form1時刷新。(當Form1,Form2打開時)
謝謝。
Form2將必須具有對Form1實例的引用。 單擊插入按鈕時,可以將此引用傳遞給Form2:
Form2 insertForm = new Form2();
//Form2.ShowDialog(Me); - Correction - 'Me' is for VB. in C# it's:
Form2.ShowDialog(this);
接下來在Form2上,您可以像這樣訪問Form1:
(Form1)this.Parent.RefreshTable();
試試這個從另一種形式調用方法:
if (System.Windows.Forms.Application.OpenForms["ParentFormName"] != null)
{
(System.Windows.Forms.Application.OpenForms["ParentFormName"] as ParentFormName).MethodName(args);
}
在Form1中,當您打開Form2時,附加到Form2 OnClose/Closed
事件或自定義Save
事件,該事件在引發時將刷新表單1中的表。
調整Form2的構造,使其采用額外的參數,如下所示:
...
private Form1 mainWindow;
public Form2(Form1 mainWindow)
{
this.mainWindow = mainWindow;
}
...
public void HaveSavedSql()
{
this.mainWindow.RefreshAll();
}
但是,您應該考慮查找接口,以便您可以分開關注。 接口對很多事情都有用!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.