[英]find form instance from other class
我在 listBox 中有包含數據列表的主窗體。 單擊按鈕時,我正在打開新表單以創建新數據 object(主表單在后台處於非活動狀態),當提交新數據時,主表單內的列表框應填充新的 object。
我在想以下內容:
問題是:
如果創建了 Form1 並且在某些事件中使用 showDialog 實例化了 Form2,那么在提交數據之前 Form1 處於非活動狀態 如何在關閉 Form2 之前找到 Form1 實例?
那么,如何從 Form2 class 中找到 Form1 class 的實例呢?
謝謝
您可以使用Application.OpenForms
屬性獲取對應用程序當前打開的任何表單的引用。 此FormCollection
Forms
可以通過索引訪問,如下所示:
var form1 = Application.OpenForms[0];
或者通過表單的Name
屬性,如下所示:
Form form1 = Application.OpenForms["Form1"];
希望這可以幫助。
獲得打開表單的實例后,我需要從該表單調用一個方法,所以這對我有用:
if (System.Windows.Forms.Application.OpenForms["Form1"] != null)
{
Form1 form1 = Application.OpenForms["Form1"] as Form1;
form1.yourMethodCall();
}
如果你打電話
Form1.ShowDialog(this)
然后您將能夠獲得對調用表單的引用
this.Owner.Name
在第二種形式中(在您的情況下為 Form2)
請參閱http://msdn.microsoft.com/en-us/library/system.windows.forms.form.showdialog.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.