我的项目中有2个表单,form1和form2。当我单击form1中的按钮时,我运行此代码:
Form tempform = new Form2();
tempform.Show();
在我的Form2代码中,我有一个标签,我现在需要更改文本。 我如何访问标签?
我试过了:
tempform.label1.value = "new text"
这不起作用,我甚至尝试使用Controls集合进行访问,但我认为我搞砸了。有什么方法可以访问标签吗?或者有什么方法可以将值传递给新表单,然后让表单更改标签文本。
由于
答案 0 :(得分:7)
如果标签值只应设置一次,那么在创建表单时,请使用Form2的构造函数,如下所示:
public Form2(string labelValue)
{
_labelValue = labelValue;
}
然后在创建表单时调用该构造函数。
或者,如果标签在表单的生命周期内发生变化,请创建一个公共属性:
public string LabelValue
{
get { return label1.Text; }
set { label1.Text = value; }
}
我还建议命名参数和/或属性以反映值的含义,例如“titleText”而不是“labelValue”。这样,Form2可以决定它如何显示信息(在标题栏,标签,文本框等),而Form1不必担心这一点。
编辑:使用LabelValue属性,如下所示:
Form2 newForm = new Form2(); // Assign object to a Form2 instead of Form
newForm.LabelValue = "new text";
newForm.Show();
答案 1 :(得分:2)
默认情况下,控件具有protected
访问权限。您可以将其更改为public
,或者您可以向form2类添加方法/属性以设置标签并调用它(后一种方法通常首选保留封装,因为设计人员可能想要覆盖您的公共更改)。