Win Form1 neu laden wenn Win Form2 geschlossen wird

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Win Form1 neu laden wenn Win Form2 geschlossen wird

    Hallo,

    ich habe folgende Frage , oder Problem.

    Wenn ich Form schließe soll sich FORM1 komplett aktualisiern (DGV)
    Im Form 2 bearbeite ich die Einträge des DGV


    Ich bekomme das hin das beim schließen die Message Box aufgeht, sämtliche veruche wie über SQl die Daten neue einzulesen usw. hat nicht geklappt.
    Hat für mich jemand einen kleinen Tipp ?

    Form 2

    C#-Quellcode

    1. private void FORM_DRUCKER_BEARBEITEN_FormClosed(object sender, FormClosedEventArgs e)
    2. {
    3. FORM_DRUCKER_LISTE frm = new FORM_DRUCKER_LISTE();
    4. frm.Refreshmethode();
    5. }



    Im Form 1
    das mut der Message Box klappt nach dem schließen des FORM2

    C#-Quellcode

    1. public void Refreshmethode()
    2. {
    3. MessageBox.Show("hat da jemnd geklickt?");
    4. }


    z.B. das habe ich versucht und mehr. Es wird das Form nicht neu geladen.

    C#-Quellcode

    1. public void Refreshmethode()
    2. {this.Controls.Clear();
    3. this.InitializeComponent();
    4. Form frm = new FORM_DRUCKER_LISTE();
    5. frm.Update();
    6. frm.Refresh();
    7. }


    Ich habe es auch über SQL versucht, und ein neues einlesen des DGV.
    Mit einen Refresh Button klappt das im Form1.


    C#-Quellcode

    1. var select = "select id as Id, beschreibung as Beschreibung, link as Link, benutzer as Benutzer, password as Passwort, bezeichnung as Bezeichnung, fach as Fach, typ as Typ, einbaudatum as Einbaudatum, service as Service from dbo.tabdrucker ORDER by id ASC";
    2. var c = new SqlConnection(dbzugriff);
    3. var dataAdapter = new SqlDataAdapter(select, c);
    4. var commandBuilder = new SqlCommandBuilder(dataAdapter);
    5. var ds = new DataSet();
    6. dataAdapter.Fill(ds);
    7. DGV.ReadOnly = true;
    8. DGV.DataSource = ds.DefaultViewManager;
    9. this.DGV.RowsDefaultCellStyle.BackColor = Color.White;
    10. this.DGV.AlternatingRowsDefaultCellStyle.BackColor = Color.LightGray;
    11. DGV.DataSource = ds.Tables[0];
    12. DGV.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
    13. //DGV.AutoResizeColumns();
    14. DGV.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
    15. DGV.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
    16. DGV.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;



    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „jnpanzer“ ()

    In welcher Beziehung stehen Form1 und Form2? Wer (MainForm) ruft wen (SubForm) wie (Show? ShowDialog?) auf?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @VaporiZed Jou.
    @jnpanzer Wenn Form2 als modaler Dialog (frm.ShowDialog()) aufgerufen wird, ist das nicht nötig, da die aufrufende Form blockiert ist.
    Wenn Form2 als nicht modaler Dialog (frm.Show()) aufgerufen wird, kannst Du beim Instanziieren der Form2 das Form2-FormClosed-Event in Form1 abonnieren und wirst per Event informieret, wenn Form2 geschlossen wird. Da kannst Du dann alles tun, was getan werden soll:

    C#-Quellcode

    1. private void button4_Click(object sender, EventArgs e)
    2. {
    3. Form dlg = new Form();
    4. dlg.FormClosed += this.Dlg_FormClosed;
    5. dlg.Show();
    6. }
    7. private void Dlg_FormClosed(object sender, FormClosedEventArgs e)
    8. {
    9. MessageBox.Show("Form geschlossen");
    10. }
    ====
    Wie bearbeitest Du welche Daten des DGV in Form2?
    Wie sind die Daten an das DGV gebunden?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „RodFromGermany“ ()

    @RodFromGermany
    Ungebundenes DGV (leider mit gerbunden muss ich mich nährer befassen).
    In der Form 2 hab ich Felder wo wo die markierte Zeile vom DGV von Form, 1 angezeigt wird. Ich mache das mit ID Übergabe in Form 2 dann eine SQL Abfrage.
    Beim schließen speicher/lösche ich oder häne eine Zeile dran in der DB.

    @'VaporiZed

    Mit Show Form und übergeb Variabele

    C#-Quellcode

    1. ueberschrift_hinweis = "Druck - Eintrag Bearbeiten";
    2. var1 = DGV[0, rowindex].Value.ToString();
    3. var2 = "1"; //bearbeiten
    4. Form frm = new FORM_DRUCKER_BEARBEITEN(ueberschrift_hinweis, var1, var2);
    5. frm.Show(this);


    Ich komme aber schon ein wenig weiter
    mit den Zeilen von RodFromGermany macht er mir das Form1 neu auf aber die Daten werden aktalisiert im neuen Fom.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „jnpanzer“ ()

    jnpanzer schrieb:

    macht er mir das Form mehrmals auf
    Bei mir nicht.
    Sende von Form2 an Form1 ein Event, mit dem Du die aktualisierten Daten an Form1 übergibst.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!