C#形成价值保留

C#形成价值保留,c#,winforms,C#,Winforms,我隐藏了一个表单,然后转到不同的表单,但我试图使用在第一个表单上计算的变量值。当我在,假设,第四个表单上时,我不能使用表单1上的值,因为它们变为零。因为我的函数总是使用这些值生成零 你能告诉我可能会出什么问题吗? 如果这似乎是一个问题,我可以更详细地解释我的代码是一个问题 谢谢因为表单是一个类,所以您显示的表单是该类的实例,因此,数据实际上是该表单的本地数据。如果您正在显示一个新实例,那么是的,原始数据将消失 其思想是使用公共方法或属性从这些表单获取数据 public class MyForm

我隐藏了一个表单,然后转到不同的表单,但我试图使用在第一个表单上计算的变量值。当我在,假设,第四个表单上时,我不能使用表单1上的值,因为它们变为零。因为我的函数总是使用这些值生成零 你能告诉我可能会出什么问题吗? 如果这似乎是一个问题,我可以更详细地解释我的代码是一个问题
谢谢

因为
表单
是一个类,所以您显示的表单是该类的实例,因此,数据实际上是该表单的本地数据。如果您正在显示一个新实例,那么是的,原始数据将消失

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

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.

因为
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.


当您存储值时,您是将其直接存储在表单操作中还是使用某种对象。为什么不在
会话中存储第一个表单值呢?
。如果是,则清除您的问题。您是在创建表单类的新实例,而不是使用现有实例。如果您以前使用Visual Basic编程,那么您可能会发现Application.OpenForms非常方便。我使用的是c sharp和Visual studio,那么,我如何使用现有表单而不是新实例呢?当您存储值时,您是直接将它们存储在表单操作中还是使用某种对象。为什么不应该在
会话中存储第一个表单值呢而不是使用现有的。如果您以前使用Visual Basic编程,那么您可能会发现Application.OpenForms很方便。我使用的是c sharp和Visual studio,那么如何使用现有表单而不是新实例?我创建的表单是公共的,我尝试在第三个表单上使用在第一个表单上创建的值,但它确实发出了声音work@VaibhavAggarwal您是否将第一个表单的引用传递给其他表单,在这种情况下,您应该能够通过公共属性访问这些值。我创建了相应表单的适当对象来调用其变量。这与公共表单无关。你必须有一个对表单的引用,然后访问它的公共成员(在本例中是属性)。我修复了它,原始答案是关键,我正在为函数创建一个表单的新实例,因此数据不见了。我引用了原始实例,它成功了!!我创建的表单是公共的,我试图在第三个表单上使用在第一个表单上创建的值,但它没有发送work@VaibhavAggarwal你有没有把第一张表格的参考资料传给其他人,在这种情况下,您应该能够通过公共属性访问这些值。我创建了相应窗体的适当对象来调用其变量。这与窗体是公共的无关。你必须有一个对表单的引用,然后访问它的公共成员(在本例中是属性)。我修复了它,原始答案是关键,我正在为函数创建一个表单的新实例,因此数据不见了。我引用了原始实例,它成功了!!