我正在尝试在 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 循环,因为数组大小是动态的,所以我确切地知道要循环多少次——这只是动态更改变量名称的问题。
最佳答案
您将需要循环遍历一个 TextBox
数组。由于 C# 是一种静态类型语言,因此无法按照您想要的方式完成此操作。
您可以使用Controls
属性(表单中所有控件的集合)来完成您的需要。您可以通过索引器和控件名称访问控件:
this.Controls["label1"].Text = yourText;
关于c# - 在循环中动态更改 C# 变量名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5290932/