在 C# 中将一个 WindowsForm 标签访问到另一个窗体



我正在使用两个窗口表单应用程序,我想从第二个表单设置第一个表单标签的值。但是当我在第二形式中访问第一个表单标签时,应用程序会显示此错误

Object reference not set to an instance of an object.

我正在使用此语句访问

login_form.ActiveForm.Controls["label_name"].Text = "Hello World";

有时我工作正常,但有时显示此错误

请解决我的问题。我会非常感谢你。

明智的做法是:

  1. 在第一种形式中公开一个属性,通过该属性可以对标签文本进行更改。
  2. 在第一个窗体中公开一个方法,您可以调用该方法来影响标签文本更改。

示例 #1:

public class Form1 : Form
{
    public String LabelText
    {
        get { return label_name.Text; }
        set { label_name.Text = value; }
    }
}
//from Form2...
login_form.LabelText = "Hello World";

示例 #2:

public class Form1 : Form
{
    public void SetLabelText(String TextToSet)
    {
        label_name.Text = TextToSet;
    }
}
//from Form2...
login_form.SetLabelText("Hello World");

我不建议简单地将控件更改为Public. 间接访问是可取的。

相关内容

  • 没有找到相关文章

最新更新