簡體   English   中英

如何使用反射獲取表單的IWin32Window

[英]how to get IWin32Window of form using reflection

我有一個Windows窗體,我顯示為非模態對話框。 因此,我在該窗體上調用重載的Show(IWin32Window所有者)方法。 唯一的問題是我想在這里使用的父表單之一在項目中是不可訪問的。 因此,我想使用反射使用類似下面的代碼加載它。

var frm = Assembly.GetEntryAssembly().GetTypes().Where(f => f.Name == "ParentForm").FirstOrDefault();

但是,這會產生以下編譯錯誤。

最好的重載方法匹配

'System.Windows.Forms.Form.Show(System.Windows.Forms.IWin32Window)'有一些無效的參數

參數1:無法從'System.Type'轉換為'System.Windows.Forms.IWin32Window'

有關如何實現這一目標的任何建議?

您可能希望搜索Application.OpenForms集合。

Form f = Application.OpenForms.Where(x => x.GetType().Name == "ParentForm").FirstOrDefault();

暫無
暫無

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

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