У меня есть форма1, form2 и класс. Я хочу использовать form2 для изменения переменной в классе, а затем прочитать эту переменную в form1.Изменить значение в классе, а затем использовать его в другой форме
Дело в том, что переменная не изменяется, когда я пытаюсь ее прочитать из формы1, и она остается после того, как я снова открою форму2.
Это мой код:
Form1
namespace app1 {
public partial class Form1 : Form {
Class1 md = new Class1();
public Form1() {
InitializeComponent();
}
private void loginToolStripMenuItem_Click(object sender, EventArgs e) {
Login login = new Login();
login.MdiParent = this;
login.enbctrs += new ShowFrm(enablecrts);
login.disctrs += new ShowFrm(disablecrts);
login.Show();
}
private void Form1_Load(object sender, EventArgs e) {
if (md.user == null) {
disablecrts();
stat_usr.Text = "No active user";
} else {
stat_usr.Text = md.user.ToString();
}
}
void disablecrts() {
stat_usr.Text = "No active user";
}
void enablecrts() {
stat_usr.Text = md.user;
}
}}
Form2
namespace app1.Forms {
public delegate void ShowFrm();
public partial class Login : Form {
public event ShowFrm enbctrs;
public event ShowFrm disctrs;
int ing_counter = 0;
Class1 md = new Class1();
public Login() {
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
string u = "user";
string p = "pass";
if(Txt_user.Text == u && Txt_pass.Text == p) {
string msg = "Welcome: " + u + "";
MessageBox.Show(msg, "", MessageBoxButtons.OK);
md.changeusr(u);
active_user.Text = md.user.ToString();
enbctrs();
}
private void Login_Load(object sender, EventArgs e) {
if (md.user == null) {
active_user.Text = "No active user";
} else {
active_user.Text = md.user.ToString();
}
}
}}
Class1
namespace app1.Modules {
class Class1 {
public string user;
public void changeusr(string u) {
user = u;
return;
}
}}
Я не уверен, чего вы пытаетесь достичь. Вы загружаете свой экземпляр Class1 при каждой загрузке страницы. Вам нужен какой-то механизм сохранения. – richb01
Вы должны использовать статический класс и члены, чтобы сохранить его значение. Или иначе вы будете сохранять текущее состояние в XML и загружать его каждый раз. –
Вот страница, которая может вам помочь: https://msdn.microsoft.com/en-us/library/6c3yckfw.aspx. – richb01