如何使标签数组公开
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++)
【讨论】:
以上是关于如何使标签数组公开的主要内容,如果未能解决你的问题,请参考以下文章
Google Drive API:如何插入权限以使文档公开可读?