Hi,
ich habe ein Form1 (Form_Optionen) in dem ich ein TabPage (tab_AdminOption) habe. Dieses soll nur angezeigt werden, wenn in Form2 (Form_Passwortabfrage) das richtige Passwort eingeben wird.
Damit das Tabpage angezeigt wird möchte ich die Größe des Formulars ändern und tab_AdminOption auf true setzen.
Mein Code in der Passwortabfrage sieht so aus:
string PW_admin;
private void Passwortabfrage()
{
if (txt_PW_Abfrage.Text == PW_admin)
{
Form_Optionen FM_Opt = new Form_Optionen();
FM_Opt.Size = new Size(820, 650);
FM_Opt.tab_AdminOption.Visible = true;
FM_Opt.Refresh();
this.Close();
}
else
MessageBox.Show(this, "Falsche Eingabe! \n Bitte wiederholen!");
}
private void cmd_OK_Click(object sender, EventArgs e)
{
Passwortabfrage();
}
private void cmd_close_Click(object sender, EventArgs e)
{
this.Close();
}
private void txt_PW_Abfrage_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
Passwortabfrage();
}
}
Es passiert nichts 😦
Ich vermute, dass hier "Form_Optionen FM_Opt = new Form_Optionen();" falsch ist, da Form_Optionen schon offen ist, oder?
Aber wie kann ich dann Form_Optionen ansprechen?
[FAQ] Kommunikation von 2 Forms
Das müsste genau das sein, was Du suchst.
Du erstellst eine neue Instanz der Form, stellst da was ein und wenn die Methode zuende ist, wird die Instanz wieder weg geworfen.
Du musst aber die vorhandene Form-Instanz verändern, nur dann tut sich auch was.
NuGet Packages im Code auslesen
lock Alternative für async/await
Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.
string PW_admin; private void Passwortabfrage() { if (txt_PW_Abfrage.Text == PW_admin) { Form_Optionen FM_Opt = new Form_Optionen(); FM_Opt.Size = new Size(820, 650); FM_Opt.tab_AdminOption.Visible = true; FM_Opt.Refresh(); this.Close(); } else MessageBox.Show(this, "Falsche Eingabe! \n Bitte wiederholen!"); }
Keine gute Idee das Adminpasswort so abzufragen - jeder der dein Program hat kann sich somit ganz leicht als Admin anmelden wenn er den Reflector öffnen kann...
Ich hab es hinbekommen - Danke für die Hinweise.
@Stefan:
Das Passwort ist zwar nicht systemkritisch, aber ich dachte mir, dass ich es in den settings verschlüsseln werde. Ich hatte da mal was gelesen, muss mich aber erst reinarbeiten. Eins nach dem Anderen 😉