有沒有辦法可以呼叫父表單(用戶)中存在的函式,其中呼叫了第二個表單(addNewUser)的實體?我想要做的是當第二個表單關閉時,在更新表的父表單(用戶)中執行一個函式,以便在第二個表單(addNewUser)中所做的更改在第一個表單的表中更新(用戶)。
我想要實作的目標的簡單繪圖
uj5u.com熱心網友回復:
對于像 WinForms 這樣的事件驅動范例,最好的方法是在有可以攔截的事件時使用事件。
您可以從任何創建事件引發器實體的類訂閱事件。在這種情況下,您可以簡單地將事件處理程式系結到由第二個表單引發的 FormClosed 事件。
// Suppose you have a button click that opens the second form.
private void button_Click(object sender, EventArgs e)
{
SecondForm f = new SecondForm();
f.FormClosed = onSecondFormClosed;
f.ShowDialog();
}
private void onSecondFormClosed(object sender, FormClosedEventArgs e)
{
// Do whatever you need to do when the second form closes
}
uj5u.com熱心網友回復:
定義全域變數以標識您的表單實體:
internal static Form1 CurrentForm1 { get; set; }
internal static Form2 Frm2 { get; set; }
然后影響變數如下:
public Form1()
{
InitializeComponent();
CurrentForm1 = this;
}
在代碼中的某處,您將定義 Form2:
Frm2 = new Form2();
現在,從 Frm2 代碼,您將訪問 form1 非靜態方法:
Form1.CurrentForm1.UpdateMyThings();
從 Frm1 代碼中,您將能夠觀看 Frm2 上的內容,例如:
bool notified = false;
while (Frm2.backgroundWorker1.IsBusy)
{
if (notified == false)
{
Message("Please wait...");
notified = true;
}
Application.DoEvents();
}
在這個例子中, Frm1 檢查后臺作業者 #1 是否仍在 Frm2 中運行(訊息函式可能會在標簽或其他東西中顯示訊息)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/367628.html
上一篇:缺少Spring請求引數
下一篇:從另一個命名空間匯入插件
