Проблема заключается в том, что вы пытаетесь скрыть неправильную instace из frmUser
. Я предполагаю, что первый проход кода находится внутри класса frmPass
. Там вы создаете новый экземпляр, который вы пытаетесь скрыть. Но вы хотите скрыть исходный экземпляр.
Как уже сказал Нино, я также предложил бы использовать DialogResult
, чтобы проверить, подтвержден ли администратор. Но может быть, у вас уже есть другой механизм. Тем не менее, вы должны поместить скрытие строки кода в класс frmUser
после вызова pass.ShowDialog();
private void button1_Click(object sender, EventArgs e)
{
formPass pass = new formPass();
pass.ShowDialog();
if(AdminIsConfirmed)
{
this.Hide();
}
}
оставить другой this.Hide()
в frmPass
, чтобы закрыть это.
EDIT
Другая возможность передать экземпляр frmUser
в конструктор frmPass
и имеют переменную типа frmUser
в frmPass
. Вы просто должны перегружать:
public partial class formPass : Form
{
formUser us;
public formPass(/* all that stuff that you have plus*/, formUser us)
{
InitializeComponent();
this.us = us;
}
вызов frmPass
как это сейчас:
frmPass pass = new frmPass(lblAID.Text, lblName.Text, lblType.Text, "User Module", this);
теперь вы можете просто удалить строку:
frmUser us = new frmUser(lblEID.Text, lblAdmin.Text, lblType.Text);
и все это будет работать, и скрыть должным образом.
Непонятно, где находится код. где первая часть? –