Das Problem ist, dass Sie die falsche instace von frmUser
zu verbergen versuchen. Ich nehme an, dass die erste Code-Passage innerhalb der Klasse frmPass
liegt. Dort erstellen Sie eine neue Instanz, die Sie zu verstecken versuchen. Aber Sie möchten die ursprüngliche Instanz ausblenden.
Wie Nino bereits vorgeschlagen habe, würde ich auch vorschlagen, die DialogResult
zu verwenden, um zu überprüfen, ob der Admin bestätigt ist. Aber vielleicht hast du schon einen anderen Mechanismus. Trotzdem müssen Sie das Versteck Codezeile in die Klasse platzieren frmUser
nach dem Aufruf von pass.ShowDialog();
private void button1_Click(object sender, EventArgs e)
{
formPass pass = new formPass();
pass.ShowDialog();
if(AdminIsConfirmed)
{
this.Hide();
}
}
lassen Sie die anderen this.Hide()
im frmPass
, dass zu schließen.
EDIT
andere Möglichkeit, das frmUser
Beispiel in den Konstruktor von frmPass
und hat eine Variable vom Typ frmUser
in frmPass
passieren würde. Sie müssen es nur überlasten:
public partial class formPass : Form
{
formUser us;
public formPass(/* all that stuff that you have plus*/, formUser us)
{
InitializeComponent();
this.us = us;
}
Anruf frmPass
wie dies jetzt:
frmPass pass = new frmPass(lblAID.Text, lblName.Text, lblType.Text, "User Module", this);
jetzt können Sie nur die Zeile entfernen:
frmUser us = new frmUser(lblEID.Text, lblAdmin.Text, lblType.Text);
und das Ganze funktioniert und verstecken richtig.
ist nicht klar, wo der Code liegt. Wo ist der erste Teil? –