首页 > 解决方案 > C# 实例对象

问题描述

我可以像

Form1 form1 = new Form1();

在不丢失数据的情况下,我的意思是有 2 个文本框已填充,此表单已关闭并打开另一个 Form2 我想从这 2 个文本框中访问数据,但是当我

Form1 form1 = new Form1();

我正在丢失数据(就像是空的)

// LogInForm id returner
public partial class LogInForm : Form
{
public int IdReturner()
{
var idFinder = (from x in context.Users where x.EmailAddress == txtBoxEmail.Text select x.Id).FirstOrDefault();
            LoginViewer.UserReturner(Convert.ToString(idFinder));
            return idFinder;
        }
}
// Here is where I need store id
public partial class ProductAddToDatabase : UserControl
{
private void btnSave_Click_1(object sender, EventArgs e)
        {
            model.ProductName = txtBoxProductName.Text;
            model.ProductPrice = Convert.ToDouble(txtBoxProductPrice.Text);
            model.ProductAmount = Convert.ToInt32(txtBoxProductQuantity.Text);
            var id = loginForm.IdReturner();
            using (var context = new ProductContext())
            {
                context.Products.Add(model);
                context.SaveChanges();
                MessageBox.Show("Product added sucesfully "+ id, "Information", MessageBoxButtons.OK);
                Clear();
            }
        }
}```

标签: c#

解决方案


new Form1();, 创建一个不返回现有类型的实例。Form1

如果您尝试从现有Form1的信息中访问Form2您想要缓存的实例Form1,您正在尝试访问某个地方,例如:

// Keep in mind that this is just an example!
public class Form1 : Form
{
    public Form1()
    {
        Instance = this;
    }

    // trying to access the text in this textbox from Form2
    public TextBox textbox1;

    public static Form1 Instance;
}

public class Form2 : Form
{
    public string TextInForm1Textbox1
    {
        get
        {
            return Form1.Instance.textbox1.Text;
        }
    }
}

推荐阅读