У меня есть программа, и когда она запускается, на главной странице (frmHomePage) появляются игры для игры, а также кнопка для входа (FrmSignIn), если пользователь хочет сохранить данные. Если пользователь нажмет знак, появится новая модальная входная форма, но Домашняя страница никогда не закрывается (что я намерен держать открытым). Если сотрудник входит в игру, я хочу, чтобы некоторые кнопки стали видимыми, например «отчеты». Ответы, которые я получил, помогли мне сделать кнопку видимой, но она заставляет программу открывать новый экземпляр домашней страницы, который мне не нужен, так как у меня есть исходная домашняя страница, которая еще открыта. Есть ли способ сделать кнопку видимой после успешного входа в систему, не открывая новый экземпляр?Вызов кнопки из основной рабочей формы C#
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 !!!!
}
Да, вы создали новую форму frmHomePage, которую вы никогда не показывали. Передайте ссылку из существующей формы. Кроме того, установка свойства DialogResult для чего-либо, кроме None, закрывает модальную форму, поэтому вы должны установить это значение последним и из-за этого вам не нужна строка 'this.Close();'. Какой смысл устанавливать свойство тега, если вы закрываете форму? – LarsTech
Спасибо. Я попробую то, что вы сказали. –
Есть ли причина, по которой вы хотите установить кнопку в вашем диалоговом классе? Я бы справился с этим в основной форме, в зависимости от DialogResult. – Fang