使用字符串参数表示对象

时间:2010-12-21 12:30:07

标签: c# asp.net

如果我有以下代码:

TextBox txtUsername = new TextBox();
void setEnabled(string str, bool enable)
{
    // use str to find the TextBox object
    // str.Enabled = enable;
}

这种事情有可能吗?

我希望传递'用户名',然后将其添加到'txt'。

5 个答案:

答案 0 :(得分:2)

对于ASP.Net cotrols,请尝试Control.FindControl Method

并且对于winforms使用Controls.Find()

答案 1 :(得分:0)

是的,您需要设置Name - 属性,然后您可以通过它的所有者访问它:

this.Controls.Item(str).Enabled = enabled;

答案 2 :(得分:0)

执行此操作的一种方法是将所有文本字段存储在带有标识符的字典中:

Dictionary<string,TextBox> index = new Dictionary<string,TextBox>();
index.add("Username",txtUsername);

void setEnabled(string str, bool enable)
{
    index[str].Enabled = enable;
}

答案 3 :(得分:0)

您必须将页面传递给该函数,否则该函数将在什么上下文中搜索控件?您可以使用Page,FindControl()方法来查找控件。

答案 4 :(得分:0)

是,

   TextBox txtUsername = new TextBox();
   txtUsername.Name = "txtUsername ";



  void SetEnable(string str, bool enable)
  {
    this.Controls.Item("txt" + str).Enabled = enabled;
  }

“Bobby”的回答很少。