Casino online











Mercato forex






B2. Controllo Button: la prima applicazione windows form


Il primo esempio che andrò a illustrare è costituito da un semplicissimo programma che, al click di un pulsante, visualizza un messaggio che dice "Ciao, Mondo!" (un classico!). Prima di iniziare, però, è necessario prendere familiarità con le proprietà dei controlli, un punto centrale e molto importante per la programmazione visuale. Tutti i controlli spiegati nei prossimi capitoli solo classi derivate da Control, una classe astratta appartenente al Namespace System.Windows.Forms. Le sue proprietà più importanti, che vengono quindi ereditate da ogni altro controllo, sono:
  • AllowDrop : specifica se il controllo supporta il Drag and Drop (per ulteriori informazioni su questa tecnica, vedere capitolo 76)
  • Anchor : proprietà enumerata codificata a bit (vedi capitolo 9) che permette di impostare a quali lati del form i corrispondenti lati del controllo restano "attaccati" durante il processo di ridimensionamento. Ad esempio, se un controllo ha proprietà Anchor impostata su AnchorStyles.Right Or AnchorStyles.Bottom, si muoverà solidalmente con l'angolo in alto a destra del form, poichè esso manterrà la stessa distanza iniziale tra i suoi bordi destro e superiore e i bordi destro e superiore del form.
  • BackColor : il colore di sfondo
  • BackgroundImage : immagine di sfondo
  • ContextMenuStrip : il menù contestuale associato al controllo
  • Controls : l'elenco dei controlli figli, ossia che si trovano "all'interno" di questo controllo. Ad esempio, richiamare Me.Controls in una windows form equivale a ottenere una lista di tutti i controlli presenti sulla finestra
  • CreateGraphics() : restituisce un oggetto Graphics associato al controllo; serve per eseguire operazioni di grafica diretta sul controllo
  • DoDragDrop() : inizia un'operazione di Drag and Drop da questo controllo
  • Enabled : determina se il controllo è abilitato. Quando disabilitato, esso è di colore grigio scuro e non è possibile alcuna interazone tra l'utente e il controllo stesso
  • Focus() : attiva il controllo
  • Focused : determina se il controllo è attivo
  • Font : carattere con cui il testo viene scritto sul controllo
  • ForeColor : colore di sfondo
  • Height : altezza
  • Location : posizione del controllo rispetto al suo contenitore
  • MousePosition : posizione del mouse rispetto al controllo
  • Name : il nome del controllo (nome della variabile che rappresenta quel controllo nel form)
  • Size : dimensione
  • TabIndex : forse non tutti sanno che con il pulsante Tab (tabulazione) è possibile scorrere ordinatamente i controlli. Ad esempio, in una finestra con due caselle di testo, è possibile spostarsi dalla prima alla seconda premendo Tab. Questo accade anche nei moduli Web. La proprietà TabIndex determina l'indice associato al controllo in questo meccanismo. Così, se una casella di testo ha TabIndex = 0 e un menù a discesa TabIndex = 1, una volta selezionata la casella di testo sarà possibile spostarsi sul menù a discesa premendo Tab. L'iterazione può continuare indefinitamente per un qualsiasi numero di controlli e, una volta raggiunta la fine, reinizia daccapo
  • Tag : qualsiasi oggetto associato al controllo
  • Text : testo visualizzato sul controllo
  • Visible : determina se il controllo è visibile
  • Width : larghezza
Gran parte di essi potrebbe non avere molto significato per voi allo stato attuale delle cose, ma nelle prossime lezioni verrà spiegato tutto in dettaglio. Ho scritto questo elenco poichè la descrizione dei prossimi controlli conterrà solo un elenco di metodi e proprietà specifici per quel dato controllo.


Creare l'applicazione
Dopo aver creato un nuovo progetto windows form, impostare le seguenti proprietà della windows form mediante la finestra delle proprietà sul lato destro dell'interfaccia del compilatore:
  • (Name) = frmMain (notare la notazione ungherese)
  • FormBorderStyle = FixedSingle. Questa proprietà determina come sia visualizzato il bordo della finestra; in questo caso si vuole che non sia ridimensionabile, con bordo singolo
  • MaximizeBox = False. Determina se il pulsante Massimizza sia visibile sulla finestra: in questo caso non è possibile ingrandire la finestra a tutto schermo
  • Text = "Primo programma" (senza virgolette)
  • StartPosition = CenterScreen. Determina dove la finestra apparirà non appena caricata: in questo caso verrà posta esattamente al centro dello schermo
Come si vede, le proprietà della finestra, e in generale di ogni controllo, permettono di personalizzare la propria applicazione fin nei minimi dettagli. Ora che la finestra è pronta, si trascini un controllo Button dalla Toolbox sul Form Designer e si imposti in questo modo:
  • (Name) = cmdCiao
  • Text = "Cliccami"
A questo punto, si dovrebbe presentare all'incirca così:


Anteprima

Per iniziare a scrivere il codice è necessario disporre di un evento di cui definire il corpo: fare doppio click con il mouse sul pulsante cmdCiao appena creato. Verrà automaticamente aperta la finestra del codice con scritto:
Private Sub cmdCiao_Click(ByVal sender As System.Object, _ 
    ByVal e As System.EventArgs) Handles cmdCiao.Click

End Sub 
Questo codice rappresenta un delegate associato all'evento Click del pulsante cmdCiao. Al suo interno vanno quindi dichiarate le istruzioni da eseguire in questo frangente. Dato che lo scopo del programma è visualizzare un messggio, introdurremo il codice seguente:
Private cmdCiao_Click(ByVal sender As Object, ByVal e As EventArgs) _
    Handles cmdCiao.Click
    'La funzione visualizza un mesaggio con i seguenti attributi
    ' - Testo = "Ciao, Mondo!"
    ' - Titolo = "Primo programma"
    ' - Pulsanti = OK (un solo pulsante di conferma)
    ' - Icona = Information (fumetto bianco con una "i" blu)
    MessageBox.Show("Ciao, Mondo!", _ 
    "Primo programma", _
    MessageBoxButtons.OK, _ 
    MessageBoxIcon.Information)
End Sub 
MessageBox è un oggetto singleton disponibile in tutte le applicazioni windows ed espone solo il metodo Show, con il compito di visualizzare sullo schermo il messggio. Tale metodo ha la seguente signature:
Show(text, caption, buttons, icon, defaultButton, options, displayHelpButton) 
  • text : il testo da visualizzare nel box. Può comprendere anche dei caratteri di a capo, che si inseriscono concatenando alla stringa la costante vbCrLf.
  • caption : il titolo della finestra.
  • buttons : specifica tutti i pulsanti che devono apparire nel box. Ogni costante dell'enumeratore definisce una combinazione possibile di uno o più pulsanti, tra le seguenti: AbortRetryIgnore, OK, OKCancel, RetryCancel, YesNo, YesNoCancel.
  • icon : specifica quale icona debba comparire sul lato sinsitro del box. L'enumeratore può assumere uno tra i seguenti valori: Information o Asterisk (una "i" blu su fumetto bianco), Error o Hand o Stop (una croce bianca su fondo rosso), Exclamation o Warning (un punto esclamativo nero su triangolo giallo), Question (un punto interrogativo blu su fumetto bianco), None (niente). Se il parametro non viene specificato, si assume None come valore di default.
  • defaultButton : determina quale dei tre (o meno) pulsanti sia evidenziato quando appare il box.
  • options : opzioni di visualizzazione. Possono essere una tra le seguenti: DefaultDesktopOnly o ServiceNotification (normale), RightAlign (il testo è allineato a destra), RtlReading (tutta la messagebox è invertita come se fosse allo specchio: viene usata per le culture in cui si legge da destra a sinistra, come quella araba).
  • displayHelpButton : determina se visualizza il pulsante di aiuto ("?")
Come detto in precedenza, Show è una funzione, perciò restituisce un valore. Tale valore è un enumeratore che restituisce il codice del pulsante premuto. Ad esempio, nel caso si dovesse porre una domanda, si userebbe questo codice:
If MessageBox.Show("Ti piace Vb.Net?", "Domanda", MessageBoxButtons.YesNo, _
    MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
    MessageBox.Show("Bravo!", "Risposta", MessageBoxButtons.OK)
End If 






 

The Totem's Lair - Copyright (C) 2009
È vietata la riproduzione sia totale che parziale del sito.