Procedura dettagliata: dimostrazione dell'ereditarietà visiva

L'ereditarietà visiva consente di visualizzare i controlli nel form di base e di aggiungere nuovi controlli. In questa procedura dettagliata verrà creato un form di base che verrà compilato in una libreria di classi. La libreria di classi verrà importata in un altro progetto e verrà creato un nuovo form che eredita dal form di base. Durante questa procedura dettagliata, si apprenderà come:

  • Creare un progetto di libreria di classi contenente un form di base.

  • Aggiungere un pulsante con proprietà che le classi derivate del form di base possono modificare.

  • Aggiungere un pulsante che non può essere modificato dagli eredi del form di base.

  • Creare un progetto contenente un form che eredita da BaseForm.

Infine, questa procedura dettagliata illustrerà la differenza tra controlli privati e protetti in un form ereditato.

Attenzione

Non tutti i controlli supportano l'ereditarietà visiva da un form di base. I controlli seguenti non supportano lo scenario descritto in questa procedura dettagliata:

Questi controlli nel form ereditato sono sempre di sola lettura, indipendentemente dai modificatori usati (private, protected o public).

Creare un progetto di libreria di classi contenente un modulo di base

  1. In Visual Studio scegliere Nuovo>progetto dal menu File per aprire la finestra di dialogo Nuovo progetto.

  2. Creare un'applicazione Windows Form denominata BaseFormLibrary.

  3. Per creare una libreria di classi anziché un'applicazione Windows Form standard, in Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo del progetto BaseFormLibrary e quindi scegliere Proprietà.

  4. Nelle proprietà del progetto modificare il tipo di output da Applicazione Windows a Libreria di classi.

  5. Scegliere Salva tutto dal menu File per salvare il progetto e i file nel percorso predefinito.

Le due procedure seguenti consentono di aggiungere pulsanti al form di base. Per dimostrare l'ereditarietà visiva, si assegneranno ai pulsanti livelli di accesso diversi impostando le relative proprietà Modifiers.

Aggiungere un pulsante che eredita il modulo di base può modificare

  1. Aprire Form1 nella finestra di progettazione.

  2. Nella scheda Tutti Windows Form della casella degli strumenti fare doppio clic su Pulsante per aggiungere un pulsante al modulo. Usare il mouse per posizionare e ridimensionare il pulsante.

  3. Nella finestra Proprietà impostare le seguenti proprietà del pulsante:

    • Impostare la proprietà Text su Say Hello.

    • Impostare la proprietà (Name) su btnProtected.

    • Impostare la proprietà Modificatori su Protected. Ciò consente ai moduli che ereditano da Form1 di modificare le proprietà di btnProtected.

  4. Fare doppio clic sul pulsante Say Hello per aggiungere un gestore eventi per l'evento Click .

  5. Aggiungere la riga di codice seguente al gestore eventi:

    MessageBox.Show("Hello, World!")
    
    MessageBox.Show("Hello, World!");
    

Aggiungere un pulsante che non può essere modificato dagli eredi del modulo di base

  1. Passare alla visualizzazione struttura facendo clic sulla scheda Form1.vb [Progettazione], Form1.cs [Progettazione]o Form1.jsl [Progettazione] sopra l'editor di codice oppure premendo F7.

  2. Aggiungere un secondo pulsante e impostarne le proprietà come indicato di seguito:

    • Impostare la proprietà Text su Say Goodbye.

    • Impostare la proprietà (Name) su btnPrivate.

    • Impostare la proprietà Modificatori su Private. Ciò rende impossibile per i moduli che ereditano da Form1 di modificare le proprietà di btnPrivate.

  3. Fare doppio clic sul pulsante Say Goodbye per aggiungere un gestore eventi per l'evento Click . Inserire la riga di codice seguente nella routine evento:

    MessageBox.Show("Goodbye!")
    
    MessageBox.Show("Goodbye!");
    
  4. Scegliere Compila libreria baseForm dal menu Compila per compilare la libreria di classi.

    Dopo aver compilato la libreria, è possibile creare un nuovo progetto che eredita dal form appena creato.

Creare un progetto contenente un modulo che eredita dal modulo di base

  1. Scegliere Aggiungi dal menu File e quindi Nuovo progetto per aprire la finestra di dialogo Aggiungi nuovo progetto.

  2. Creare un'applicazione Windows Form denominata InheritanceTest.

Aggiungere un modulo ereditato

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto InheritanceTest, scegliere Aggiungi e quindi nuovo elemento.

  2. Nella finestra di dialogo Aggiungi nuovo elemento selezionare la categoria Windows Form (se è presente un elenco di categorie) e quindi selezionare il modello Modulo ereditato.

  3. Lasciare il nome predefinito di Form2 e quindi fare clic su Aggiungi.

  4. Nella finestra di dialogo Selezione ereditarietà selezionare Form1 dal progetto BaseFormLibrary come modulo da cui ereditare e fare clic su OK.

    Verrà creato un modulo nel progetto InheritanceTest che deriva dal form in BaseFormLibrary.

  5. Aprire il modulo ereditato (Form2) nella finestra di progettazione facendo doppio clic su di esso, se non è già aperto.

    Nella finestra di progettazione i pulsanti ereditati hanno un simbolo (Screenshot of the Visual Basic inheritance symbol.) nell'angolo superiore, che indica che sono ereditati.

  6. Selezionare il pulsante Say Hello e osservare gli handle di ridimensionamento. Poiché questo pulsante è protetto, gli eredi possono spostarlo, ridimensionarlo, modificarne la didascalia e apportare altre modifiche.

  7. Selezionare il pulsante Privato Say Goodbye e notare che non dispone di handle di ridimensionamento. Inoltre, nella finestra Proprietà le proprietà di questo pulsante sono disattivate per indicare che non possono essere modificate.

  8. Se si usa Visual C#:

    1. In Esplora soluzioni fare clic con il pulsante destro del mouse su Form1 nel progetto InheritanceTest e scegliere Elimina. Nella finestra di messaggio visualizzata fare clic su OK per confermare l'eliminazione.

    2. Aprire il file Program.cs e modificare la riga Application.Run(new Form1()); in Application.Run(new Form2());.

  9. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto InheritanceTest e scegliere Imposta come progetto di avvio.

  10. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto InheritanceTest e scegliere Proprietà.

  11. Nelle pagine delle proprietà InheritanceTest impostare l'oggettoStartup come modulo ereditato (Form2).

  12. Premere F5 per eseguire l'applicazione e osservare il comportamento del modulo ereditato.

Passaggi successivi

L'ereditarietà per i controlli utente funziona in modo analogo. Aprire un nuovo progetto di libreria di classi e aggiungere un controllo utente. Inserire controlli costitutivi e compilare il progetto. Aprire un altro progetto di libreria di classi e aggiungere un riferimento alla libreria di classi compilata. Provare anche ad aggiungere un controllo ereditato (tramite la finestra di dialogo Aggiungi nuovi elementi ) al progetto e usando selezione ereditarietà. Aggiungere un controllo utente e modificare l'istruzione Inherits (: in Visual C#). Per altre informazioni, vedere Procedura: Ereditare Windows Form.

Vedi anche