在选择对象时使用变量(本例中为文本框)



我在一个表单中有多个文本框,用键入的信息创建了一个名为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"
));

如果正确理解您的需求,您有一个名为"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"
));

这需要对你的文本框进行非常严格的命名,这使得它很容易出错。我不建议在生产中使用,但它应该有效。

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

相关内容

  • 没有找到相关文章

最新更新