我有一个程序,当它启动时,主页(frmHomePage)会弹出游戏,如果用户想要保存数据,还会有一个登录按钮(FrmSignIn)。如果用户按下标志,将弹出一个新的模态登录表单,但主页永远不会关闭(我打算保持打开状态)。如果员工登录游戏,我希望某些按钮变得可见,例如“报告”。我得到的答案帮助我使按钮可见,但它使程序打开一个新的主页实例,我不想要,因为我原来的运行主页仍然打开。有没有办法在登录成功后使按钮可见,而无需打开新实例?
frmSignIn,用于验证员工是否登录。
if (ValidCredentials(txtUsername.Text, txtPassword.Text) == true && checkBoxEmployee.Checked == true && txtBoxEmpPin.Text.Equals(employeePin))
{
this.DialogResult = DialogResult.OK;
this.Tag = _usersId;
this.Close();
MessageBox.Show("You have successfully logged in as an employee.");
frmHomePage hp = new frmHomePage();
hp.Button.Visible = true; // !!!! Does not work !!!!
}
答案 0 :(得分:0)
在frmSignIn中创建一个可以从frmHomePage中检索的属性。
由于frmSignIn将从主窗口声明,因此您可以访问该属性(例如isSignedIn)。当frmSignIn关闭时(从frmHomePage / MainWindow的角度来看,你可以做一个检查:
if (isSignedIn) { button.IsVisible = true; }
因此,通过使用这样的属性,您不需要创建frmHomePage的新实例,而是修改UI。