Oppure

Loading
21/05/09 18:25
Il Totem
Rileggendo il topic mi è sorto un dubbio. Tutti i form che sono passati come parametro al metodo mostra sono diversi e progettati indipendentemente nell'editor? Se lo sono, ed espongono sempre gli stessi metodi e gli stessi controlli, perchè non crei un'interfaccia che possa essere implementata da questi?
totem.altervista.org/guida/versione2/…
Usando un'interfaccia non c'è il problema dell'ereditarietà, che può influire negativamente sul designer (praticamente l'unico caso in cui l'ereditarietà può essere dannosa), ma se ne possono usare gli stessi principi. Se Form2, Form3, Form4, ..., FormN hanno tutti gli stessi membri, implementaranno tutti questa interfaccia, ad esempio IForm:
Class Form2
  Implements IForm
  '...

E il codice sarà:
Sub mostra(ByVal F As IForm)
  S.Salva("a")
  S.Variabile = True
  '...
End Sub


La collezione Controls esiste perchè contiene i controlli del form, i quali sono sempre aggiunti dinamicamente: dichiarare un controllo come membro della classe derivata da form, infatti, non basta a farlo apparire nella visualizzazione. Le variabili, invece, sono puro codice, sono membri effettivi della classe ed esistono solo nel suo contesto: essendo determinate prima dell'esecuzione, sono a tutti gli effetti statiche. Ecco perchè non può esistere una collezione Variables analoga a Controls. Le si può ottenere con la reflection (e solo quelle con scope pubblico o friend), ma credo che la soluzione basata sulle interfacce risolverà il tuo problema.
aaa
22/05/09 21:40
Alfonso
Ho dato un'occhiata al link.

Data l'ora tarda e la stanchezza penso che avrò bisogno di una giornata tranquilla per studiare e capire.

Mi farò risentire.
Cordialità
aaa