【问题标题】:How to dynamically set a control using variables C#如何使用变量 C# 动态设置控件
【发布时间】:2011-03-02 02:34:30
【问题描述】:

如何在运行时动态调用控件并为其设置属性?

// 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 = "";
}

【问题讨论】:

  • 嗯?我真的不明白你在这里问什么。
  • 我怀疑你只是想 get 一个给定的控件然后 name 控件 - 如果是这种情况,我建议使用Dictionary&lt;name,Control&gt; 或类似的(虽然可能总体设计很恶心?) Controls 集合可以手动迭代——但更恶心。

标签: c# .net properties set controls


【解决方案1】:

请参阅here,了解如何提出好问题。

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

这里我在运行时动态创建控件:

Textbox c = new Textbox();

设置其文本,例如

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

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

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

【讨论】:

  • 我知道我参加聚会有点晚了,但最后一个街区帮了我大忙。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2019-05-23
    • 2011-10-28
    • 2013-05-15
    • 1970-01-01
    • 2016-10-23
    • 1970-01-01
    • 2021-01-04
    • 2019-01-29
    • 2019-08-31
    相关资源
    最近更新 更多