2011-03-02 94 views
0

如何在运行时动态调用控件并设置它的属性?如何使用变量动态设置控件C#

// Declare and set queue servers 
string[] queueservers = new string[] { "SERVER1", "SERVER2", "SERVER3", "SERVER4" }; 
int y; 

for (y = 0; y <= queueservers.Length - 1; y++) 
{ 
    string queueanswer = GetMailQueueSize(queueservers[y]); 
    if (queueanswer == "alarm") 
    { 
     phxQueueImg + queueservers + .ImageUrl = "~/images/Small-Down.gif"; 
    } 
    else 
    { 
     phxQueueImg + queueservers + .ImageUrl = "~/images/Small-Up.gif"; 
    } 
    queueanswer = ""; 
} 
+1

咦?我真的不明白你在这里问什么。 – 2011-03-02 03:16:22

+0

我怀疑你只是想*控制*控制给予*名称* - 如果是这种情况,我会建议使用'字典<名称,控制>'或类似的(虽然也许一般设计是icky?)Controls集合可以手动迭代 - 但更多ick。 – 2011-03-02 05:41:44

回答

1

请参阅here关于问好问题。

我打算假设你粘贴了错误的代码,因为它似乎与问题afaik没有任何关系。如果这是winform,wpf或web,Plus可以编辑你的问题和标签吗?

在这里,我动态地在运行时创建的控制:

Textbox c = new Textbox(); 

设置它的文本,比如

string s = "Please paste code that relates to your question"; 
c.Text = s; 

或者在这里我动态设置我的TextBox控件属性使用变量:

propertyInfo = c.GetType().GetProperty(property); 
if (propertyInfo != null) 
{ 
    propertyInfo.SetValue(c, value, null); 
} 
+0

我知道我对派对有点迟到,但最后一块帮我解决了问题。 – Rig 2011-07-19 17:08:12

0

尝试FindControl("controlID")然后将此调用的结果转换为所需的控件类型并设置所需的属性。

(SomeParentControl.FindControl("IDOfControlToFind") AS LinkButton).PostBackUrl = "~/someresource.aspx";