Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Con C#, è possibile creare potenti controlli personalizzati tramite ereditarietà. Tramite l'ereditarietà è possibile creare controlli che mantengono tutte le funzionalità intrinseche dei controlli Windows Form standard, ma incorporano anche funzionalità personalizzate. In questa procedura dettagliata verrà creato un semplice controllo ereditato denominato ValueButton. Questo pulsante erediterà la funzionalità dal controllo Windows Form Button standard ed esporrà una proprietà personalizzata denominata ButtonValue.
Creare il progetto
Quando si crea un nuovo progetto, specificarne il nome per impostare lo spazio dei nomi radice, il nome dell'assembly e il nome del progetto e assicurarsi che il componente predefinito sia nello spazio dei nomi corretto.
Per creare la libreria di controlli ValueButtonLib e il controllo ValueButton
In Visual Studio creare un nuovo progetto libreria di controlli Windows Form e denominarlo ValueButtonLib.
Il nome del progetto,
ValueButtonLib, viene assegnato anche allo spazio dei nomi radice per impostazione predefinita. Lo spazio dei nomi radice viene usato per qualificare i nomi dei componenti nell'assembly. Ad esempio, se due assembly forniscono componenti denominatiValueButton, è possibile specificare ilValueButtoncomponente usandoValueButtonLib.ValueButton. Per altre informazioni, vedere Spazi dei nomi.In Esplora soluzioni fare clic con il pulsante destro del mouse su UserControl1.cs, quindi scegliere Rinomina dal menu di scelta rapida. Modificare il nome del file in ValueButton.cs. Scegliere il pulsante Sì quando richiesto per rinominare tutti i riferimenti all'elemento di codice '
UserControl1'.In Esplora soluzioni fare clic con il pulsante destro del mouse su ValueButton.cs e scegliere Visualizza codice.
Individuare la riga dell'istruzione
class,public partial class ValueButton, e modificare il tipo da cui eredita questo controllo da UserControl a Button. In questo modo, il controllo ereditato eredita tutte le funzionalità del controllo Button.In Esplora soluzioni aprire il nodo ValueButton.cs per visualizzare il file di codice generato dalla finestra di progettazione ValueButton.Designer.cs. Aprire questo file nell'editor di codice .
Individuare il
InitializeComponentmetodo e rimuovere la riga che assegna la AutoScaleMode proprietà . Questa proprietà non esiste nel Button controllo .Scegliere Salva tutto dal menu File per salvare il progetto.
Annotazioni
Un designer visivo non è più disponibile. Poiché il Button controllo esegue il proprio disegno, non è possibile modificarne l'aspetto nella finestra di progettazione. La rappresentazione visiva sarà esattamente uguale a quella della classe da cui eredita (ovvero , Button) a meno che non venga modificata nel codice. È comunque possibile aggiungere componenti, senza elementi dell'interfaccia utente, all'area di progettazione.
Aggiungere una proprietà al controllo ereditato
Un possibile uso dei controlli Windows Form ereditati è la creazione di controlli identici nell'aspetto dei controlli Windows Form standard, ma espongono proprietà personalizzate. In questa sezione si aggiungerà una proprietà denominata ButtonValue al controllo.
Per aggiungere la proprietà Value
In Esplora soluzioni fare clic con il pulsante destro del mouse su ValueButton.cs, quindi scegliere Visualizza codice dal menu di scelta rapida.
Individuare l'istruzione
class. Subito dopo il{, digitare il codice seguente:// Creates the private variable that will store the value of your // property. private int varValue; // Declares the property. public int ButtonValue { // Sets the method for retrieving the value of your property. get { return varValue; } // Sets the method for setting the value of your property. set { varValue = value; } }Questo codice imposta i metodi in base ai quali la
ButtonValueproprietà viene archiviata e recuperata. L'istruzionegetimposta il valore restituito al valore archiviato nella variabilevarValueprivata e l'istruzionesetimposta il valore della variabile privata usando lavalueparola chiave .Scegliere Salva tutto dal menu File per salvare il progetto.
Testare il controllo
I controlli non sono progetti autonomi; devono essere ospitati in un contenitore. Per testare il controllo, è necessario fornire un progetto di test in cui eseguirlo. È anche necessario rendere il controllo accessibile al progetto di test costruendolo (compilandolo). In questa sezione compilerai il tuo controllo e lo testerai in un Windows Forms.
Per costruire il tuo controllo
Nel menu Compila scegliere Compila soluzione. La compilazione deve avere esito positivo senza errori o avvisi del compilatore.
Per creare un progetto di test
Scegliere Aggiungi dal menu File e quindi fare clic su Nuovo progetto per aprire la finestra di dialogo Aggiungi nuovo progetto.
Selezionare il nodo Windows sotto il nodo Visual C# e fare clic su Applicazione Windows Form.
Nella casella Nome immettere Test.
In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo Riferimenti per il progetto di test, quindi scegliere Aggiungi riferimento dal menu di scelta rapida per visualizzare la finestra di dialogo Aggiungi riferimento .
Fare clic sulla scheda Progetti etichettati. Il progetto ValueButtonLib verrà elencato in Nome progetto. Fare doppio clic sul progetto per aggiungere il riferimento al progetto di test.
In Esplora soluzioni fare clic con il pulsante destro del mouse su Test e scegliere Compila.
Per aggiungere il controllo al modulo
In Esplora soluzioni fare clic con il pulsante destro del mouse su Form1.cs e scegliere Visualizza progettazione dal menu di scelta rapida.
Nella casella degli strumenti selezionare ValueButtonLib Components (Componenti ValueButtonLib). Fare doppio clic su ValueButton.
Nel form viene visualizzato un controllo ValueButton .
Fare clic con il pulsante destro del mouse su ValueButton e scegliere Proprietà dal menu di scelta rapida.
Nella finestra Proprietà esaminare le proprietà di questo controllo. Si noti che sono identici alle proprietà esposte da un pulsante standard, ad eccezione del fatto che è presente una proprietà aggiuntiva ButtonValue.
Impostare la proprietà ButtonValue su 5.
Nella scheda Tutti i Windows Form della casella degli strumenti fare doppio clic su Etichetta per aggiungere un Label controllo al modulo.
Rilocare l'etichetta al centro del modulo.
Fare doppio clic su
valueButton1.L'editor di codice si apre all'evento
valueButton1_Click.Inserire la riga di codice seguente.
label1.Text = valueButton1.ButtonValue.ToString();In Esplora soluzioni fare clic con il pulsante destro del mouse su Test e scegliere Imposta come progetto di avvio dal menu di scelta rapida.
Scegliere Avvia debug dal menu Debug.
Form1Viene visualizzato.Fare clic su
valueButton1.Il numero '5' viene visualizzato in
label1, dimostrando che la proprietàButtonValuedel controllo ereditato è stata passata alabel1attraverso il metodovalueButton1_Click.ValueButtonIl controllo eredita quindi tutte le funzionalità del pulsante Windows Form standard, ma espone una proprietà personalizzata aggiuntiva.
Vedere anche
.NET Desktop feedback