值始终为空
Values Always Null
我正在尝试从另一个 class 访问文本框的值。文本框存在于 winform1.cs 中,我想在 testing.cs
中访问它们
在 testing.cs 的顶部,我实例化了 winform1 wf = new winform1();
,这让我可以看到带有智能感知的文本框,但是如果我输入
Messagebox.Show(wf.txtfname.Text);
Messagebox.Show(wf.txtlname.Text);
我得到一个空引用异常 - 如果我使用直接 window 并键入 wf.txtfname.Text
它 returns ""
- 文本框的修饰符设置为public.
我需要更改什么才能从不同的 class 捕获这些文本框的值?
如果有所不同,我试图在其中显示值的方法声明为
protected override void()
这是来自 designer.cs 的两个文本框的语法
public System.Windows.Forms.TextBox txtfname;
public System.Windows.Forms.TextBox txtlname;
这是因为您正在访问表单的其他实例,而不是可见的实例。请注意,如果您这样做
winform1 wf = new winform1();
wf.Show();
它将显示您正在获取这些值的实际形式。
您需要获取正确的对象实例才能使用它。也许,如果您不打算打开那个 window 的另一个实例,您可以创建一个包含引用的静态 属性。
把它放在 winform1
class:
里面
public static winform1 MainInstance { get; set; }
将其放入 winform1
class
的构造函数中
MainInstance = this;
现在,这样访问:
Messagebox.Show(winform1.MainInstance.txtfname.Text);
Messagebox.Show(winform1.MainInstance.txtlname.Text);
我正在尝试从另一个 class 访问文本框的值。文本框存在于 winform1.cs 中,我想在 testing.cs
中访问它们在 testing.cs 的顶部,我实例化了 winform1 wf = new winform1();
,这让我可以看到带有智能感知的文本框,但是如果我输入
Messagebox.Show(wf.txtfname.Text);
Messagebox.Show(wf.txtlname.Text);
我得到一个空引用异常 - 如果我使用直接 window 并键入 wf.txtfname.Text
它 returns ""
- 文本框的修饰符设置为public.
我需要更改什么才能从不同的 class 捕获这些文本框的值?
如果有所不同,我试图在其中显示值的方法声明为
protected override void()
这是来自 designer.cs 的两个文本框的语法
public System.Windows.Forms.TextBox txtfname;
public System.Windows.Forms.TextBox txtlname;
这是因为您正在访问表单的其他实例,而不是可见的实例。请注意,如果您这样做
winform1 wf = new winform1();
wf.Show();
它将显示您正在获取这些值的实际形式。
您需要获取正确的对象实例才能使用它。也许,如果您不打算打开那个 window 的另一个实例,您可以创建一个包含引用的静态 属性。
把它放在
里面winform1
class:public static winform1 MainInstance { get; set; }
将其放入
的构造函数中winform1
classMainInstance = this;
现在,这样访问:
Messagebox.Show(winform1.MainInstance.txtfname.Text); Messagebox.Show(winform1.MainInstance.txtlname.Text);