如何使标签数组公开

Posted

技术标签:

【中文标题】如何使标签数组公开【英文标题】:How to make a Labels array public 【发布时间】:2016-09-12 17:00:03 【问题描述】:
    private void Form1_Load(object sender, EventArgs e)
    
        palabras pala = new palabras();
        pala.Traelo();
        Label[] labels = new Label[pala.cantLetras];

   
 private void MoveteA()
    
        for (int i = 0; i < posActLabelsX.Count; i++)
        
         labels[i].Location=Point(posLabelFormX - posLabelBotonX, posLabelFormY - posLabelBotonY);   
        
    

但它不会让我使用它,因为它不是公开的,但如果我把 public Label[] labels = new Label[pala.cantLetras];它给了我一个错误,我不知道是什么但破坏了整个程序。

【问题讨论】:

将其设为全局字段? 你能把标签公开时出现的错误告诉你吗? 您通常不应该这样做。标签是表单负责的 GUI 元素。最好只创建一个公共函数或方法来为您访问或处理该文本信息。看起来您正在尝试模仿 FlowLayoutPanel 的功能。 【参考方案1】:

公共字段可以像这样直接放在你的类中

public Label[] labels;
private void Form1_Load(object sender, EventArgs e)

    palabras pala = new palabras();
    pala.Traelo();
    labels = new Label[pala.cantLetras];
 

但是,如果您不在课堂之外使用它,您可能还可以将其保持为私有,并且您仍然可以在这两种方法中使用它,因为它们都在您的课堂中

【讨论】:

【参考方案2】:

我会创建一个公共的 get 属性和一个这样的私有集:

    public Label[] labels get; private set;
    private void Form1_Load(object sender, EventArgs e)
    
        palabras pala = new palabras();
        pala.Traelo();
        labels = new Label[pala.cantLetras];
   

你在for循环中的边界也可能导致索引超出范围,像这样修复它:

for (int i = 0; i < labels.Count; i++)

【讨论】:

以上是关于如何使标签数组公开的主要内容,如果未能解决你的问题,请参考以下文章

如何使 Localhost 节点 js Api 可公开访问

如何使 mysql 访问公开,而不仅限于本地主机?

如何使 Django 的开发服务器公开?一般可以吗?

Google Drive API:如何插入权限以使文档公开可读?

如何在 Catalyst 应用程序中公开多对多标签样式的关系?

如何使用属性将私有数组公开为只读? [关闭]