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

时间:2013-09-18 09:31:51

标签: c# .net argumentnullexception windowsformsintegration

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

Object reference not set to an instance of an object.

我正在使用此声明来访问

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

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

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

1 个答案:

答案 0 :(得分:1)

你会明智的:

  1. 以第一种形式公开属性,您可以通过该属性对标签文本进行更改。
  2. 以第一种形式公开您可以调用的方法以影响标签文本更改。
  3. 示例#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。间接访问更可取。