如何解决两个表单类访问不同的类C#
-我有3个班级:
- 启动程序时调用的主要winform。
- 在加载第一个表单(等待密码)时调用的winform。
- 我使用的方法的类,并且有一些变量。
当我通过 2nd 访问 3rd 类时,然后我在 3rd 变量上保存了一些数据,它被保存并且我调试prgram时可以看到它。问题是当我尝试通过* 1st 再次访问 3rd 的变量时,数据没有保存(我认为是因为调用了 > 3rd 类,例如: 3rd_Class类=新的3rd_class())。总之,有没有解决这个问题的方法。
一等舱代码:
public partial class form_parent : Form{
private Methods methods = new Methods();
private void form_parent_Load(object sender,EventArgs e)
{
form_dbPass dbpass = new form_dbPass();
dbpass.ShowDialog();
if (!dbpass.verified)
Close();
string txt = methods.DBpassword;
}
}
第二类代码:
partial class form_dbPass : Form
{
private void btn_ok_Click(object sender,EventArgs e){
Methods methods = new Methods();
methods.DBpassword = "test";
}
}
第三类代码:
public class Methods
{
public string DBpassword = "";
public void createDB(string password){
ADODB.Connection con = cat.ActiveConnection as ADODB.Connection;
if (con != null)
con.Close();
DBpassword = password;
}
}
解决方法
private Methods methods
来自“第一类”和Methods methods
来自“第二类”。
虽然我仍然不了解如何在没有构造函数的情况下创建该对象,但我还是没有正确阅读它。
仅在两种形式上创建类的对象就不会引用任何内容,因为它们是2个不同的对象。但这就是一个简单的解决方案。
以第二种形式公开该对象。
public Methods methods = new Method();
然后通过创建时的构造函数(然后不需要公共)简单地引用该对象,或仅将其传递。.
form_parent
Methods objToPass = new Method();
form_dbPass frm2 = new form_dbPass(objToPass); //obv set it in the
//constructor then
frm2.Show()
或...
以form_dbPass ..
public Methods method = null;
form_parent
Methods objToPass = new Method();
form_dbPass frm2 = new form_dbPass();
frm2.Methods = objToPass;
完成后,它将引用它,并且在那时它们相同 如果您希望它不断更新,则必须手动或通过其他方式进行更新。
我希望我能为您提供帮助。问候
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。