0

我在一个表单中有多个文本框,并使用键入的信息创建一个名为UserClass. 我想创建多个用户,为此我有不同的textboxes调用tbName1tbName2。是否可以在 中使用变量textboxname?例如tbName[variable].Text

newUsers.Add(new ClassLibrary.UserClass
(
    "AAAAAAAA",
    tbName[variable].Text,    //Is it possible to do something like this?
    " ",
    tbLastname[variable].Text,
    tbEmail[variable].Text,
    " ",
    "0497111111",
    "0611111111",
    "USER"
));
4

2 回答 2

0

如果正确理解您的要求,您有一个名为“variable”的变量,它的类型为 Integer,并且根据此变量的值,您希望获取不同文本框的 Text 属性,这些文本框以相同的模式命名,但整数递增-后缀。您可以通过反射解决这个问题,如下所示:

var tbNameX = (TextBox)this.GetType().GetProperty(tbName + variable).GetValue(this, null);
var tbLastnameX = (TextBox)this.GetType().GetProperty(tbLastname + variable).GetValue(this, null);
var tbEmailX = (TextBox)this.GetType().GetProperty(tbEmail + variable).GetValue(this, null);

newUsers.Add(new ClassLibrary.UserClass
(
    "AAAAAAAA",
    tbNameX.Text,    //Is it possible to do something like this?
    " ",
    tbNameX.Text,
    tbEmailX.Text,
    " ",
    "0497111111",
    "0611111111",
    "USER"
));

这需要对您的文本框进行非常严格的命名,这使得它非常容易出错。我不建议将此用于生产用途,但它应该可以工作。

于 2015-04-10T13:37:54.160 回答
0

恐怕您将无法在运行时声明变量,因为所有变量都必须在编译之前声明。

于 2015-05-31T01:25:06.130 回答