繁体   English   中英

C# 实例 object

[英]C# instance object

我可以像

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();
            }
        }
}```

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

如果您尝试从Form2中的现有Form1访问信息,您可能希望缓存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;
        }
    }
}

好吧,在您打开新的 forms 之前,您需要将数据保存在另一个变量中,如下所示:

var form1 = new Form();
var form1Data = form1;
form1 = new Form();

这不是一个好的做法,你的问题结构不合理,但基本上你需要这样做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM