我正在尝试在C#中的MySQLDataReader中启用和重命名标签。如果可能的话,我愿意在循环之外做这个,但是想知道是否有办法动态地改变变量的名称。例如:
while (listNamesREAD.Read())
{
int i = 0;
//TextBox1.Text = TextBox1.Text + fieldnames.GetString(0) + ", ";
stringArray[i] = "List #" + listNamesREAD.GetString(0) + ": " + listNamesREAD.GetString(1);
list1Label.Text = stringArray[i];
i++;
}
如果可能的话,我希望代码能够在每次循环时更改list1Label的名称。我对Visual C#相对较新,所以任何帮助都会非常感激。
using (MySqlCommand cmd0 = new MySqlCommand(listNames, conn))
{
conn.Open();
listNamesREAD = cmd0.ExecuteReader();
try
{
while (listNamesREAD.Read())
{
int i = 0;
//TextBox1.Text = TextBox1.Text + fieldnames.GetString(0) + ", ";
stringArray[i] = "List #" + listNamesREAD.GetString(0) + ": " + listNamesREAD.GetString(1);
list+i+Label.Text = stringArray[i];
i++;
}
}
如果可能的话,我也愿意在DataReader之外完成这项工作。使用普通的while循环,因为数组大小是动态的,所以我确切地知道要循环多少次 - 这只是动态更改变量名的问题。
答案 0 :(得分:1)
您需要循环播放TextBox
个数组。由于C#是一种静态类型语言,因此无法实现这一目标。
您可以使用Controls
属性(表单中所有控件的集合)来完成您的需要。您可以通过索引器和控件的名称访问控件:
this.Controls["label1"].Text = yourText;
答案 1 :(得分:0)
您想更改标签名称以实现目标吗? 你有标签名为:label1,label2,label3,你想改变他们的文字属性吗?
你可以通过使用linq来做到这一点。