[英]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.