我试图从不同的类访问文本框的值。文本框存在于winform1.cs中,我想在testing.cs中访问它们
在testing.cs的顶部,我实例化了winform1 wf = new winform1();
,它允许我看到带有智能感知的文本框,但如果我输入
Messagebox.Show(wf.txtfname.Text);
Messagebox.Show(wf.txtlname.Text);
我得到一个空引用异常 - 如果我使用立即窗口并输入wf.txtfname.Text
它返回""
- 文本框的修饰符设置为公共。
我需要更改哪些内容才能从其他类中捕获这些文本框的值?
如果它有所不同,我试图显示值的方法被声明为
protected override void()
这是来自designer.cs的两个文本框的语法
public System.Windows.Forms.TextBox txtfname;
public System.Windows.Forms.TextBox txtlname;
答案 0 :(得分:1)
这是因为您正在访问表单的其他实例,而不是可见的实例。请注意,如果你这样做
winform1 wf = new winform1();
wf.Show();
它将显示您获得这些值的实际形式。
您需要获取正确的对象实例才能使用它。也许,如果你不打算打开那个窗口的另一个实例,你可以创建一个保存引用的静态属性。
将它放在winform1
类中:
public static winform1 MainInstance { get; set; }
将它放在winform1
类
MainInstance = this;
现在,访问:
Messagebox.Show(winform1.MainInstance.txtfname.Text);
Messagebox.Show(winform1.MainInstance.txtlname.Text);