c# - 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();
}
}
}```
解决方案
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;
}
}
}
推荐阅读
- php - 代码审查 - 在电子邮件脚本上不断出现 500 错误
- python - 无法使用 Python 将字符串从抓取转换为货币
- rsync - Rsync 排除同名但扩展名不同的文件
- python-3.x - Tweepy:切换应用程序和用户身份验证
- json - 如何用不同类型的相同变量解组
- php - 如何 SQL 查询特定 JSON 格式的父子节点?
- f# - 无法在 HttpMethod 上进行模式匹配
- spring-boot - 如何有效地从 Spring Data jpa 中具有额外列的连接表中删除?
- java - 如何使用井号显示文档
- ios - 在 iOS Swift 上发布到 Instagram 屏幕