Я создал public bool LogedIn;
в моем login.cs :
if(login successful condition)
LogedIn = true;
else
LogedIn = false
Но когда я получаю доступ к этому var из другой формы с Login Log = new Login();
при использовании if(Log.LogedIn)
переменная LogedIn
всегда false даже после успешного входа пользователя в систему.
Почему это не работает / не обновляет свое значение вне родительской формы?
Обновление кода: Login.cs
public bool isLogedIn;
private void button1_Click(object sender, EventArgs e)
{
if (i>-1 && (textBox2.Text == DS.Tables[0].Rows[--i][0].ToString()))
{
this.DialogResult = DialogResult.OK;
isLogedIn = true;
}
else
{
MessageBox.Show("Invalid password supplied for username \"" + comboBox1.Text + "\"", "Login Error.....", MessageBoxButtons.OK);
isLogedIn = false;
return;
}
}
Проверка обновленного значения в Home.cs
private void Home_Load(object sender, EventArgs e)
{
if (Log.isLogedIn) // Always False at this position.
{
label18.ForeColor = System.Drawing.Color.Green;
submitButton.Enabled = true;
}
else
{
label18.ForeColor = System.Drawing.Color.Red;
submitButton.Enabled = false;
}
}
Я проверил еще раз ... У меня нет двойного экземпляра этой переменной в форме Login.cs .
Вот как я вызываю форму Login.cs через Home.cs (основная форма).Надеюсь, это поможет ...
private void loginToolStripMenuItem_Click(object sender, EventArgs e)
{
Log.FormClosed += new FormClosedEventHandler(Log_FormClosed);
Log.ShowDialog(this);
Log.BringToFront();
}
void Log_FormClosed(object sender, FormClosedEventArgs e)
{
if (Log.isLogedIn)
{
// Something here
}
else
{
// Something here
if (Log.DialogResult == DialogResult.Cancel)
Log.Hide();
}
}