Page 1 of 1

VB .NET close form

Posted: Fri Nov 12, 2004 12:15 pm
by Dimitris
Θέλω να κάνω κάτι το πολύ απλό (τουλάχιστον στην vb 6.0 ήταν) αλλά δεν μπορώ. Έχω 2 φόρμες. Όταν ξεκινάει το πρόγραμμα ανοίγουν και οι 2 μαζί. Ο κώδικας για να ανοίξουν βρίσκεται μέσα στην Sub Main και είναι
Dim f1 as new Form1()
Dim f2 as new Form2()
f1.show()
f2.showDialog()
H f2 είναι μια modal form και έχει ενα button το οποίο όταν το πατάω θέλω να κλείνει την f2 και να μένει μόνο η f1.Πώς μπορεί να γίνει αυτό?

Posted: Fri Nov 12, 2004 12:23 pm
by Ethel
Στο event click του button της f2 γιατί δεν βάζεις να εκτελείται η f2.close() ? (κάπως έτσι ελπίζω να λέγεται μιας και έχω αρκετό καιρό να δω VB...)

Posted: Fri Nov 12, 2004 2:22 pm
by Dimitris
Δεν παρέχεται η f2.close γιατί το f2 είναι ένα αντικείμενο της form2 το οποίο έχει δηλωθεί μέσα στην Sub Main και έτσι δεν το βλέπει. Στην VB 6.0 αν θυμάμαι καλά μπορούσαμε να πάμε κατευθείαν μέσα στον event click του button στην form2 και να πούμε form2.close αλλά αυτό δεν παρέχεται (ή εκτός και αν κάνω εγώ κανένα λάθος και δεν το βλέπω). Το άλλο που δοκίμασα είναι να πάω στο module που υπάρχει η Main και να ορίσω μια συνάρτηση closeForm η οποία θα έχει σαν κώδικα f2.close (το f2 το έχω ορίσει σαν αντικείμενο μέσα στο module) οπότε μπορώ μέσα στο event click να καλέσω όνομα_module.closeForm και φυσιολογικά θα έπρεπε να μου κλείνει μόνο την f2 και να μου αφήνει την f1,αλλά αυτό τις κλείνει και τις 2 και το πρόγραμμα σταματάει να τρέχει

Posted: Fri Nov 12, 2004 2:29 pm
by Ethel
Δεν υπάρχει κάτι του στυλ me.hide() ώστε να το βάλεις μέσα την f2?

Posted: Fri Nov 12, 2004 2:35 pm
by Dimitris
Δεν δουλεύει.....Και πάλι κλείνουν και οι 2 φόρμες. Δεν ξέρω μήπως μπλέκονται τα πράγματα επειδή ανοίγω την f2 με showDialog, μήπως θέλει άλλη διαδικασία για να κλείσει.

Posted: Fri Nov 12, 2004 2:35 pm
by Ethel
Α το βρήκα!!! Μέσα στο event του Button βάλε Unload Me!

Posted: Fri Nov 12, 2004 2:49 pm
by Dimitris
To unload Me το υποστηρίζει η 6.0 αλλά όχι η .net. Αντι του unload υπάρχει η συνάρτηση close στην .net αλλά όταν την χρησιμοποιώ κλείνει και τις 2 φόρμες.

Posted: Fri Nov 12, 2004 2:51 pm
by Ethel
Φτου! Κάνε κάτι άλλο... Άνοιξε ένα manual μιας και τα πιο κλασικά τα δοκίμασες

Posted: Fri Nov 12, 2004 2:55 pm
by Dimitris
Αυτό κάνω...Έχω ψάξει όλα τα βιβλία που έχω και τώρα ψάχνω στο internet....Και το θέμα είναι ότι το χρειάζομαι για μια απαλλακτική που έχω πάρει σε .NET, οπότε πρέπει να το βρώ οποσδήποτε. Σε ευχαριστώ πάντως

Posted: Fri Nov 12, 2004 2:57 pm
by Ethel
Μου μυρίζει Γιαννακουδάκης ή κάνω λάθος;

Posted: Fri Nov 12, 2004 3:00 pm
by Dimitris
Το πέτυχες.Επειδή εγώ να κάτσω να τον διαβάσω για να τον περάσω δεν υπάρχει περίπτωση είπα να πάρω απαλλακτική.....Σε γενικές γραμμές πάντως είναι καλή γιατί έχω μάθει αρκετά πραγματα (και τώρα κόλλησα στο εύκολο)

Posted: Fri Nov 12, 2004 3:01 pm
by Ethel
Για κοίτα καιεδώ και καλό κουράγιο....

Posted: Fri Nov 12, 2004 3:18 pm
by Dimitris
Επιτέλους το βρήκα (βασικά σχεδόν ίδιο με αυτά που έκανα ήταν αλλά τωρα δούλεψε!!!!!!). Λοιπόν ο κώδικας για την form1 είναι
Dim frm As Form2
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
frm = New Form2()
Me.Show()
frm.ShowDialog()

End Sub

και για την form2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Close()
End Sub
Ethel ευχαριστώ και πάλι......

Posted: Fri Nov 12, 2004 5:20 pm
by Ethel
Άντε επιτέλους λύθηκε! Τίποτα! καλή συνέχεια....