[英]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.