Aprire un form da codice...

mercoledì 28 aprile 2004 - 17.20

H2MARON Profilo | Junior Member

Ciao a tutti
il mio primo problema è spiegare in parole semplici il mio vero problema...
ora ci provo:
ho una variabile di tipo string dove vado a scrivere il nome di una form esistente del mio progetto...
come faccio da codice ad aprire tale form mediante il click di un pulsante...?

Avete capito?...spero di si!

ciao e a presto!!

alextyx Profilo | Expert

Caro H2MARON, (ma dove li pescate 'sti nick?), sulle prime mi sono un po' scervellato a pensare se esisteva una collection nella quale iterare cercando l'oggetto Form col nome voluto, poi ho vagheggiato sulla reflection, poi sono guarito e ho cominciato a pensare come una persona quasi sana di mente! :-))
Dal momento che i nomi dei form li conosci quando scrivi il codice, un modo semplice è usare una sequenza di select case in cui confronti il nome digitato con quello del caso in questione e poi, se corrispondono, fai seguire le istruzioni di apertura del Form. Potresti anche presentare i nomi dei form come items di un listbox o di un combobox e a seconda della scelta effettuata dall'utente, aprire il form giusto. Ti sembrano strade percorribili? Se hai necessità di approfondire la faccenda....io sono qui. Ciao e buon lavoro.

H2MARON Profilo | Junior Member

Si sono percorribili...grazie!
A questo punto ti chiedo un'altra cosa...

una collection non l'ho mai utilizzata...quindi da quello che ho capito utilizzandola ho l'elenco dei form presenti nel mio progetto?...
sbaglio?

grazie ancora!

alextyx Profilo | Expert

Aspetta, aspetta, anche se sono convinto che questa collezione esiste, nn saprei come ricercarla. Puoi, ad esempio, iterare attraverso i controlli di una form, cosa che faccio con una routine che mi ripristina il forecolor nero su tutti i controlli,... ma questa è un'altra storia. :-)
Rimaniamo con i piedi per terra. Forse quello che ti serve potrebbe essere risolto anche con i banalissimi pulsanti con su una scritta tipo "Archivio Fumetti", "Utilità di calcolo quantomeccaniche", ecc... Nn vorrei che stessimo qui a questionare sui nomi dei Form, quando magari ti serve sapere con quali righe di codice puoi lanciare l'apertura di un Form.....e forse è proprio questo che mi stai chiedendo:

Dim oForm As New FrmXProve
Me.Hide()
oForm.ShowDialog(Me)
Me.Show()
oForm.Dispose()
oForm = Nothing

Partendo dal Form principale, quello di avvio, diciamo, sul quale si effettua la scelta del Form da lanciare, suppongo avendo già progettato anche un Form che si chiama FrmXProve, di crearne un'istanza e di aprirlo e di nascondere il form dal quale ho operato la scelta (cliccando su un pulsante), poi una volta che questo form sarà stato richiuso, provvederò a riaprire il form con le scelte, distruggere quello appena chiuso e rilasciare le risorse di memoria da esso occupate! Ho chiamato l'istanza oForm (oggetto Form), ma il nome è a scelta!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5