我在一个表单中有多个文本框,用键入的信息创建了一个名为UserClass
的对象。我想创建多个用户,为此我有不同的textboxes
,称为tbName1
、tbName2
等。是否可以在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"
));
这需要对你的文本框进行非常严格的命名,这使得它很容易出错。我不建议在生产中使用,但它应该有效。
恐怕您无法在运行时声明变量,因为所有变量都必须在编译前声明。