Creare controlli da codice

In programmi più complessi è utile che alcuni strumenti vengano realizzati in un secondo momento, ovvero non proprio al caricamento del programma, ma magari dopo che si è verificata una determinata condizione. Certo la soluzione potrebbe essere quella di realizzarla fin dall’inizio e renderla invisibile, fino al momento opportuno. Questa è una cosa plausibile per programmi banalissimi, che non hanno un aspetto grafico eccellente, e comunque utilizzare qusta tecnica su più controlli diventa una cosa molto scomoda. Tra l’altro, realizzare controlli da codice ha la conseguenza di condurre il programmatore in calcoli, ragionamenti e il tutto non può che far del bene a diventare programmatori più esperti. Quello che vedremo tra poco è come realizzare controlli direttamente da codice, ignorando la parte visuale e la solita abitudine di inserire controlli, associargli delle proprietà dalla finestra delle proprietà e così via. Questa trattazione introduce alla programmazione ad oggetti. Infatti il controllo verrà trattato come un vero e proprio oggetto con tutti i suoi eventi e dichiarata come per una variabile.

Per poter utilizzare il controllo durante tutta l’esecuzione del programma e con qualsiasi evento di altri controlli, dichiariamo l’oggetto in “Dichiarazione” del Form1 (nel caso generale si tratta del primo form, ma dipenderà ovviamente dal vostro progetto), esattamente sotto “Public Class Form1” in questo modo:

Public Class From1
Private WithEvents ButtonX as New Button

Il nuovo controllo dichiarato in questo caso si chiama “ButtonX”, ma lo si può chiamare come si vuole, seguendo le regole del nome di una variabile. È un controllo con eventi, (WithEvents), e cioè possiede tutti gli eventi quali ad esempio il click del mouse, il doppio click, il Key Press e così via. È stato dichiarato, in questo caso, come nuovo Button, ossia come pulsante, ma potevamo dichiarare una Label, una TextBox e così via. Ogni controllo ha i suoi eventi … e le sue proprietà.

Dichiarare un controllo non significa niente, ciò che richiede un po di calma e ragionamento è la realizzazione grafica sul form. Infatti ciò che va fatto adesso è dichiarare tutte le proprietà (almeno quelle essenziali) del controllo da realizzare, nella sub interessata alla realizzazione. Possiamo in alternativa realizzare una sub apposita che si occupi del dimensionamento del controllo, che faremo chiamare dove sarà necessario.

Private Sub BXdeclare()
ButtonX.Height = 100
ButtonX.Weight = 35
ButtonX.Location = New Point (10, 20)
ButtonX.Text = “Nuovo bottone”
ButtonX.TabIndex = 3

A questo punto vi tocca dichiarare tutti i parametri che vi interessano, per personalizzarli. Ciò che non verrà personalizzato verrà impostato come in default direttamente dal compilatore. Per evitare spiacevoli sorprese è consigliabile  assegnare al controllo quante più proprietà possibili.

A questo punto non ci resta che rendere realmente visibile il controllo:

Me.Controls.Add(ButtonX)
End Sub

Soltanto da questo momento in poi il controllo sarà realmente visibile e quindi utilizzabile a tutti gli effetti. Però da adesso in avanti tocca al programmatore immaginare dove verrà posizionato il controllo e regolarsi graficamente con il resto e non solo. In alto nell’ID, sopra il foglio di programmazione, dove sono elencati tutti i controlli, ne compare uno nuovo, che è quello che è stato appena realizzato. A questo punto, scegliendolo nella ComboBox, si hanno a disposizione tutti gli eventi di un normale controllo, in questo caso un Button. Quindi per utilizzarlo all’evento Click ad esempio basterà scegliere tra i controlli “ButtonX” – nel nostro caso—e tra gli eventi “Click”. Visual Basic realizzerà automaticamente la sub all’interno della quale è possibile eseguire tutte le operazioni possibili e immaginarie, come un normale Button.

This Post Has Been Viewed 54 Times