Οι φόρμες έχουν διάφορα events που ενεργοποιούνται κατά τη διάρκεια ζωής τους. Για παράδειγμα, στην περίπτωσή σου:
Τρέχει η εφαρμογή:
- frm1.Load
- frm1.Activated
- frm1.VisibleChanged
- frm1.Shown
Ανοίγει η frm2
- frm1.VisibleChanged
- frm1.Dectivate
Κλείνει η frm2
- frm1.VisibleChanged
- frm1.Activated
To θέμα είναι ότι τα Deactivated/Activated ενεργοποιούνται και όταν κάνεις minimize/restore τη φόρμα. Ενδεχομένως να σου κάνει το VisibleChanged όπου θα ελέγχεις αν frm1.Visible = true και τότε θα γεμίζεις το listbox. Γενικά όμως, θα σου πρότεινα να βάλεις τον επίμαχο κώδικα σε κάποια method και να την καλείς explicitly από όπου χρειάζεται, πχ πριν να κάνεις form1.Show.
Vir prudens non contra ventum mingit