2014-10-07 22 views
0

我想在窗體上顯示一個網格,顯示我的項目中的所有窗體。用戶將雙擊網格中的一行以顯示他們希望運行的表單。然後我將採取表格的形式和名稱。如何僅使用表單的名稱來實例化並顯示錶單?

通常當我顯示我的形式做到以下幾點:

MemberEditForm form = new MemberEditForm(); 

if (form.ShowDialog() == DialogResult.OK) 
{ 
    // do something if the user did not cancel the form 
} 

那麼,如何做同樣的事情,如果表單「MemberEditForm」的名稱被存儲在一個名爲formToDisplay變量?

回答

0

使用Activator.CreateInstance

var formType = Type.GetType("YourNameSpace.YourForm"); 

if (formType != null) 
{ 
    using (var form = ((Form)Activator.CreateInstance(formType))) 
    { 
     if (form.ShowDialog() == DialogResult.OK) 
     { 
      // do something 
     } 
    } 
} 

這是假設你存儲在您的網格中的每一Form的完全合格的名稱,並且所有項目類型的Form(而不是其他控件)。

相關問題