Questo topic e' stato chiuso dal moderatore.
27/02/08 14:03
fiftyfour
Salve,
sto tentando di convertire del codice scritto in VB6 al nuovo VB.NET (versione 2008), ma resto inesorabilmente bloccato su questo problema:
nel form principale del programma (Menù
esiste una toolbar con diversi tasti funzione ( es. Nuovo, Salva, ecc.)
quando, all'interno di un form secondario, premo uno di questi tasti, una routine del form principale deve richiamare una routine residente nel form secondario ( ad es. Salva), cosa che avveniva regolarmente nella versione VB6:
Dim CurrentForm As Form
Set CurrentForm = Screen.ActiveForm
CurrentForm.Salva
...
ora, in VB.NET, provo a fare:
Dim CurrentForm As Form = TryCast(ActiveForm, Form)
CurrentForm.Salva()
ma mi compare il messaggio di errore:
Errore 90 'Salva' non è un membro di 'System.Windows.Forms.Form'.
Il problema è che con la programmazione ad oggetti sono a piedi, dovrò ricominciare quasi da zero.
C'è qualcuno che può aiutarmi?
Vi ringrazio anticipatamente.
Ultima modifica effettuata da Il Totem 27/02/08 19:52
aaa
28/02/08 18:32
fiftyfour
Grazie mille per l'autorevole intervento.
Se ho ben capito, il casting deve riferire ad un'oggetto specifico (nel ns. esempio 'FormSecondario') e non ad un oggetto generico tipo 'Form'; bene.
Ma se il form secondario che ha scatenato l'evento Tasto_Click (membro del form principale) non è conoscibile a priori? Evidentemente non ho ancora capito niente.
Complimenti per la bellissima guida, sto cominciando a consultarla, inoltre ho intenzione di acquistare un paio di testi, sono consapevole che non andrò molto lontano se non mi ficco la OOP in testa; il peccato originale è stato quello di ritenere il VB.NET un Up del VB6, povero me. Ma io ho la testa dura...
Grazie ancora e spero di ricevere ancora qlc aiutino.
aaa