Newsgroup: it.comp.lang.visual-basic
Titolo: Errore su inherits form

Ri-posto per errore di digitazione.
Sto valutando VB2008 Express come alternativa ad Access.
Stavo facendo delle prove sulla ereditarietà (inherits) dei form,
da sfruttare per creare un form di base (FormBase) da cui modellare
varie form ereditate,
per esempio MainForm, SecondForm, ecc.
Pensavo fosse semplice ma poi sono incappato nel seguente codice
errore:
La classe base 'FormBase' specificata per la classe 'MainForm' non
può
essere differente dalla classe base 'System.Windows.Forms.Form' di
uno
degli altri tipi parziali.
Nel codice di MainForm pongo:
Public Class MainForm
    Inherits WindowsApplication1.FormBase
End Class
Ho poi provato il progetto di esempio VB 2008 RTM Samples\Winforms
Samples\InheritForm
che si scarica da 
www.msnd.com
 e li funziona tutto regolare e non mi
sembra che ci siano
righe di codice particolari.
Non è che VB2008 Express non supporta tali fnzionalità?
o mi sono perso qualcosa (cosa forse più plausibile)
Grazie.

 Non � che VB2008 Express non supporta tali fnzionalit�?
Assolutamente escluso. Le versioni Express non hanno alcuna limitazione 
per quanto riguarda il codice. In linea di principio il codice te lo 
puoi scrivere anche con Notepad e poi compilare tutto col compilatore a 
riga di comando distribuito inseme al Framework, anche senza avere 
Visual Studio in nessuna versione.
-- 
news:it-alt.comp.software.openoffice : Il newsgroup dedicato a
OpenOffice.org, la suite open source di applicazioni per ufficio.
Scarica "OpenOffice.org 3.0 Soluzioni a raccolta", molto pi� di semplici 
FAQ! 
http://it.openoffice.org/doc/manuali/

 Visual Studio in nessuna versione.
Intendo dire: non è che VB2008 Express rispetto alla versione
standard,
non ha le funzionalità per creare in maniera rapida questa
"derivazione" della MainForm?
Detto volgaremente un pulsante nel menù aggiungi nuovo elemento?
Grazie

 Grazie
Ma c'�. Basta fare Progetto > Aggiungi Windows Form..., come penso che 
hai fatto tu. Per� per default eredita dalla classe base del Framework.


 O forse intendi qualcos'altro?
Quando crei una form in .NET 2008, vengono creati più file... in
particolare hai un MiaForm.vb che è quello dove dovresti scrivere il
tuo codice, e MiaForm.designer.vb che viene generato automaticamente
(può essere comunque modificato a mano, con un minimo di attenzione) e
contiene alcune inizializzazioni.
Se guardi il codice noti alcune cose:
- La classe è definita 'Partial'; questo fa si che tu possa spezzare 1
classe logica in più file fisici e tenere il codice più pulito, è
esattamente quello che fa il designer.
- Il codice nel file .designer contiene già l'istruzione Inherits
relativa alla form base del framework
Questo vuol dire che se tu, nel file MiaForm.vb aggiungi
Public Class MainForm
    Inherits WindowsApplication1.FormBase
End Class
stai andando in conflitto con l'istruzione presente in .designer.vb,
perchè la stessa classe non può derivare da più padri in .net
Soluzioni:
- Chiudi l'editor grafico della form se è aperto, togli la riga da
MiaForm.vb, modifica quella corrispondente in MiaForm.Designer.vb; se
riapri l'editor vedrai che è corretto adesso.
- Più semplicemente, quando aggiungi una nuova finestra al progetto
usa il menù Add-Windows form...
nella finestra che compare non guardare solo i "Common Item"> ma
scegli a sinistra la voce "Windows Form" e vedrai che trovi l'elemento
"Inherited Form", questo ti fa selezionare in una seconda schermata da
cosa vuoi derivare e a quel punto pensa lui a scrivere il
file .designer.vb in maniera corretta.
ciao

 file .designer.vb in maniera corretta.
Questi wizard a cui alludi, ci sono in VB2008 Express?
A me sembra di non avere visto nulla. Stasera controllo.
Cmq molissime grazie.