从主运行表单C#调用一个按钮

时间:2016-11-29 19:21:16

标签: c#

我有一个程序,当它启动时,主页(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 !!!!
  }

1 个答案:

答案 0 :(得分:0)

在frmSignIn中创建一个可以从frmHomePage中检索的属性。

由于frmSignIn将从主窗口声明,因此您可以访问该属性(例如isSignedIn)。当frmSignIn关闭时(从frmHomePage / MainWindow的角度来看,你可以做一个检查: if (isSignedIn) { button.IsVisible = true; }

因此,通过使用这样的属性,您不需要创建frmHomePage的新实例,而是修改UI。