2011-11-11 37 views
0

我隐藏了一个窗体,然后转到不同的窗体,但我尝试使用第一个窗体上计算的变量的值。是的,当我开始的时候,假设,第四种形式,我不能在form1上使用这些值,因为它们变成了零。因为我的函数总是使用这些值产生一个零点 请问可能出现什么问题? 如果doesent似乎是这个问题我可以更详细我的代码,然后再解释的问题 谢谢C#窗体保留值

+0

当您存储这些值时,您是直接将它们存储在表单操作中,还是使用某种类型的对象。 –

+0

为什么不应该将第一个表单的值存储在'Session'.IS中,如果有问题,那么就不要清除你的问题。 –

+0

您正在创建Form类的新实例,而不是使用现有的实例。如果您之前在Visual Basic中编程,那么您可能会发现Application.OpenForms方便。 –

回答

4

由于Form是一类,你都呈现形式是该类的实例,因此,该数据是这种形式非常地方化。如果你正在显示一个新的实例,那么是的原始数据已经消失。

这个想法是使用公共方法或属性从这些表单中获取数据。

public class MyForm : Form 
{ 
    TextBox t = new TextBox(); 

    public string TBData 
    { 
     get { return t.Text; } 
    } 
} 

// outside: 
Form f = new MyForm(); 
f.Show() 

//f.TBData will get what is in the text box. 
+0

我创建的表单是公开的,我试图在第三个表单上使用在第一个表单上创建的值,但它没有工作 –

+0

@VaibhavAggarwal您是否具有将第一个表单传递给其他表单的参考,您应该可以通过公共属性访问这些值 – V4Vendetta

+0

我创建了相应表单的相应对象来调用其变量 –