繁体   English   中英

如何访问添加到面板的控件?

[英]How to access to a Control added to a panel?

我正在尝试修改之前添加到面板 (MyPanel.Controls.Add(MyLabel) 的 label (label.Text) 的文本。

我将 label 添加到 function 的面板中:

public PanelEx nameoffunction()
{
.
.
MyPanel.Controls.Add(MyLabel);
return MyPanel;
.
.
}
MyPanelWithControl = nameoffunction();

现在我在MyPanelWithControl的面板。 我现在如何访问之前添加的 label 以修改其字段之一?

您可以使用其 Name 属性找到一个控件:

MyLabel.Name = "label1";
MyPanel.Controls.Add(MyLabel);
...
MyPanel.Controls["label1"].Text = "updated text";

但是,如果您对用户界面进行更改,这种方法可能会在以后导致问题。 如果您将 label 移动到另一个面板,或更改其名称,则尝试使用该名称查找它的代码仍会编译,但在运行时会导致错误。 对于长期项目,最好将控件的引用存储为属性:

public class PanelEx : Panel {
    ...
    public Label MyLabel { get; set; }
}

public PanelEx nameoffunction() {
    ...
    MyPanel.MyLabel = MyLabel;
    return MyPanel;
}

然后您可以直接从面板 object 访问 Label:

MyPanel.MyLabel.Text = "updated text";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM