更改已在C#中以编程方式创建的标签文本?

E. *_*ani 3 c# visual-studio winforms

txt1在应用程序运行时(在运行时)创建了一个在私有void内部以编程方式调用的标签,我想在另一个私有void中更改此标签的文本,但我无法txt1从另一个void 访问它!

用于动态创建标签的脚本:

private void labelCreate() 
{
Label txt1 = new Label();
}
Run Code Online (Sandbox Code Playgroud)

用于更改其文本txt1已在labelCreatevoid中创建的脚本(此脚本不起作用,因为txt1尚未声明为控件):

private void labelTextChange()
{
txt1.Text = "Hello World!";
}
Run Code Online (Sandbox Code Playgroud)

更新1:我需要创建100个具有不同名称的标签,然后我将使用一个for语句来创建100个标签.我无法声明100个全局变量.所以我需要传递变量而不是将它们声明为全局变量.

更新2:是否可以将for语句中的100个标签声明为全局?

更新3:假设我想从数据库中获取一些数据,我想在唯一标签中单独显示它们.所以我给每个标签命名并根据我从DB获得的不同数据更改它们的文本!所以我需要2个空洞:一个用于根据我从DB获得的行数创建标签,另一个空白用于更改我之前创建的标签文本!

问题:如何访问在不同的void中创建的控件?如果有答案请分享链接:)

谢谢

Arv*_*iya 5

Label在你的课堂上宣布全球

Label txt1;
private void labelCreate() 
{
  txt1 = new Label();
}
Run Code Online (Sandbox Code Playgroud)

比访问另一种方法

private void labelTextChange()
{
 txt1.Text = "Hello World!";
}
Run Code Online (Sandbox Code Playgroud)

编辑1

如果您有多个标签,在创建标签时,您可以将这些对象存储在一个数组中,当您需要更改这些文本时,请执行此操作

Label[] labelsArray //declare globally
private void labelTextChange()
{
    // Get Label objects from array
    labelsArray = { label1, label2, label3, label4, label5 };
    for (int i = 0; i < labelsArray.Count(); i++)
    {
        labelsArray[i].Text = "Hello.. " + (i + 1).ToString();
    }
}
Run Code Online (Sandbox Code Playgroud)