C# 循环中标签的增量名称

C# 循环中标签的增量名称,c#,C#,编程还是很新的,但我有一个小的schedule应用程序,我正在开发,基本功能是:将条目从datagrid拖到面板上,面板中嵌套的三个标签使用相关文本更新,查询数据库并保存表中的适当单元格 我的大问题是从数据库加载所有这些数据,并在一个循环中干净地填充所有标签。我知道我需要从数据库中查询什么来获取数据,但就在UI中显示数据而言,我希望能够实现一些简单的功能,比如将循环计数器与标签名称绑定,但我不确定如果这是一件事,我该如何做?例如:如果我的所有标签都命名为panel1Title、panel2Tit

编程还是很新的,但我有一个小的schedule应用程序,我正在开发,基本功能是:将条目从datagrid拖到面板上,面板中嵌套的三个标签使用相关文本更新,查询数据库并保存表中的适当单元格

我的大问题是从数据库加载所有这些数据,并在一个循环中干净地填充所有标签。我知道我需要从数据库中查询什么来获取数据,但就在UI中显示数据而言,我希望能够实现一些简单的功能,比如将循环计数器与标签名称绑定,但我不确定如果这是一件事,我该如何做?例如:如果我的所有标签都命名为panel1Title、panel2Title等等,我希望这样做,即所选标签的名称在我放置数字的地方递增,但它们与计数器一致递增:

while (X<=42)
{
panelXTitle.Text = "Title";
}
while(X您可以使用它(假设您编写时有标签,而不是面板):

使用System.Linq;
var labels=this.Controls.OfType();
int X=0;
而(X++p.Name==“panel”+X+“Title”).FirstOrDefault();
如果(label!=null)label.Text=“Title”+X;
}
我们在根级别使用表单的所有标签,但是您可以使用任何容器而不是
this.Controls
SomePanel.Controls
(如果需要,您可以使用递归,请参见下文)

接下来在循环中,我们更改与搜索条件匹配的
文本
属性

例如,您应该能够使用正则表达式和/或某些Linq方法进行优化,以避免循环

循环前

循环后

您还可以创建标签列表并对其进行解析,而不是每次按名称进行搜索:

使用System.Collections.Generic;
专用字典标签=新字典();
私有void FormTest_加载(对象发送方,事件参数e)
{
var labels=this.Controls.OfType();
int X=0;
而(X++p.Name==“panel”+X+“Title”).FirstOrDefault();
如果(label!=null)标签。添加(X,label);
}
}
私有无效按钮操作\单击(对象发送者,事件参数e)
{
foreach(标签中的变量标签)
{
if(label.Key==10)
label.Value.Text=“特殊标签”;
其他的
label.Value.Text=“Text”+label.Key;
}
标签[5]。Text=“修改后的文本”;
}
如果需要递归解析,可以查看:


使用数组或字典。您的意思是将我从数据库中提取的数据存储在数组中,还是将标签/标签名称存储在数组中?“如果不是,我应该朝哪个方向来实现相同的结果?”显然这是可以做到的,但是您是否考虑过使用DataGrid而不是大量单独的标签?不,您不能这样做。您可以设置
Name
属性,但不能设置变量名。后者必须是唯一的,前者不必。这使得它们毫无用处。您的目标是什么:Winforms、WPF、ASP..?您应该始终标记y我们的问题正确无误,因此可以在问题页面上看到!