2014-10-06 70 views
-4

我有一個代碼來獲取我的項目中的所有表單名稱。如何通過表單名稱獲取表單標題(表單文本) - Winform C#

try 
{ 
    Assembly assemblies = Assembly.Load("ProjectMyNameSpace"); 
    Type[] types = assemblies.GetTypes(); 
    foreach (Type t in types) 
    { 
     if (t.BaseType == typeof(XtraForm) | t.BaseType == typeof(XtraUserControl)) 
     { 
      checklistBox.Items.Add(t.Name); 
      //<= t.Name like "frm_Login, frm_UserInfo...etc" 
     } 
    } 
} 
catch 
{ 
} 

但現在,我想通過表單名稱獲取Form.Text。 我該怎麼做?

http://i.stack.imgur.com/WwNdY.png

+1

你真的想要得到一個快速回答?然後問清楚可以理解的問題! – 2014-10-06 08:52:37

+0

@ ChristianSt.Where不清楚可以理解嗎? – GinCanhViet 2014-10-06 08:54:18

+0

XtraUserControl是一種表單類型嗎? – 2014-10-06 09:14:53

回答

0

你不能沒有產生這種形式的一個新實例獲得Text屬性值。您提供的代碼片段不會解釋何時會創建這些實例。

如果你有形式(例如Application.OpenForms)的一些列表,你可以重複這些形式並返回Text屬性值時的名稱或當前實例的類型相匹配的條件:

Form f = Application.OpenForms["formName"]; 
if (f != null) { 
    // do something with f.Text; 
} 
+0

Application.OpenForms,沒有Application.OpenedForms。 – GinCanhViet 2014-10-06 09:52:40

+0

這是工作,但不是所有的形式。還有一些問題!非常感謝! – GinCanhViet 2014-10-06 09:53:53

+0

這只是與表格打開工作! :( – GinCanhViet 2014-10-06 10:02:21