访问新表单上的控件

时间:2009-02-10 17:20:33

标签: c# winforms

我的项目中有2个表单,form1和form2。当我单击form1中的按钮时,我运行此代码:

Form tempform = new Form2();
tempform.Show();

在我的Form2代码中,我有一个标签,我现在需要更改文本。 我如何访问标签?

我试过了:

tempform.label1.value = "new text"

这不起作用,我甚至尝试使用Controls集合进行访问,但我认为我搞砸了。有什么方法可以访问标签吗?或者有什么方法可以将值传递给新表单,然后让表单更改标签文本。

由于

2 个答案:

答案 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类添加方法/属性以设置标签并调用它(后一种方法通常首选保留封装,因为设计人员可能想要覆盖您的公共更改)。