Opss ho parlato troppo presto...

Ho creato un nuova pagina UserControl ProvaPage

Public Class ProvaPage

''' <summary>
''' Ridefinisce il metodo ereditato restituendo
''' il tipo enumerativo corrispondente alla pagina.
''' </summary>
Public Overrides Function GetKind() As PageKind
Return PageKind.Prova
End Function

End Class

Qui c'è il primo problema : Function GetKind nn puo' essere dichiarato 'Overrides' , mentre nelle pagine StartupPages e ContactPage è difinito overrides

Poi ho aggiunto dove fa l'enumerazione delle pagine in pages.vb

' prova
Prova = 3

e nella funzione per creare nuove pagine ho aggiunto questo

Case PageKind.Prova
Return New ProvaPage()

Problema due: impossibile convertire il valore di tipo "MultiPageWinApp.ProvaPage" in "MultiPageWinApp.BasePage

''' <summary>
''' Elenca le costanti che rappresentano le singole pagine dell'applicazione;
''' esse vengono utilizzate per identificare una determinata pagina.
''' </summary>
''' <remarks>
''' Aggiungere e rimuovere costanti numeriche a piacimento quando si
''' inseriscono o si cancellano pagine dal progetto dell'applicazione.
''' </remarks>
Public Enum PageKind

' TODO:
' aggiungere/rimuovere istruzioni di creazione quando
' nuove pagine vengono inserite/cancellate dal progetto!

' (nessuna pagina / pagina indefinita)
Undefined = 0

' Pagina iniziale
Startup = 1

' Contatti
Contact = 2

' prova
Prova = 3


End Enum

''' <summary>
''' Consente di creare nuove pagine da visualizzare nell'applicazione.
''' </summary>
''' <remarks>
''' La classe non può essere ereditata.
''' </remarks>
Public NotInheritable Class PageFactory

''' <summary>
''' Crea una nuova pagina selezionando la classe in base al
''' tipo di pagina specificato come parametro.
''' </summary>
''' <param name="Kind">
''' Indica il tipo di pagina da creare.
''' </param>
''' <returns>
''' L'istanza della classe corrispondente alla pagina richiesta
''' </returns>
''' <remarks>
''' Aggiungere le istruzioni necessarie alla creazione delle pagine
''' richieste nell'applicazione e aggiornare il metodo ogni volta
''' che si aggiungono o si rimuovono pagine dal progetto.
''' </remarks>
Public Shared Function CreateNew(ByVal Kind As PageKind) As BasePage

' TODO:
' aggiungere/rimuovere istruzioni di creazione quando
' nuove pagine vengono inserite/cancellate dal progetto!

Select Case Kind
Case PageKind.Startup
Return New StartupPage()
Case PageKind.Contact
Return New ContactPage()
Case PageKind.Prova
Return New ProvaPage()

Case PageKind.Undefined
Return Nothing
Case Else
Return Nothing
End Select

End Function

End Class

Ho seguito scrupolosamente la struttura del progetto , ma nn riesco a capire dove ho commesso l'errore. Qualcuno mi puo' dare una mano?

Grazie