Laden...

Wie kann ich Größe von Form1 über Form2 ändern?

Erstellt von Rico913 vor 3 Jahren Letzter Beitrag vor 3 Jahren 580 Views
R
Rico913 Themenstarter:in
95 Beiträge seit 2020
vor 3 Jahren
Wie kann ich Größe von Form1 über Form2 ändern?

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?

2.079 Beiträge seit 2012
vor 3 Jahren

[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.

463 Beiträge seit 2009
vor 3 Jahren
  
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...

R
Rico913 Themenstarter:in
95 Beiträge seit 2020
vor 3 Jahren

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 😉