Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Guida al C# - Lavorare con i Controlli di Windows

Guida al C#

Capitolo 16° - Lavorare con i Controlli di Windows

<< Precedente Prossimo >>
Per gestire i controlli Windows Presenti nell'IDE grafico di Visual Studio
Basta trascinare un comunissimo controllo tipo [b]Button[/b]

Per gestire l'[b]Handles[/b] di un controllo comune.
basta un doppio click sul controllo per andare a gestire l'handles

[b]Button1.click[/b]

private void button1_Click(object sender, EventArgs e)
        {

        }


Specifico alcune differenza tra [b]EventArgs[/b] ed [b]EventHandles[/b]

[b]EventArgs[/b]
L'eventArgs viene gestito da una Variabile locale, Che consente la ricezione dell'azione eseguita su quel controllo, Esempio.
Dal Semplice Click, o dal passaggio del mouse sopra al controllo.
Viene tutto ricavato dalla variabile locale [b]e[/b]
Quindi possiamo gestire all'interno del void o dichiarando un Handles specificando cosa deve eseguirci al verificarsi di un certo evento.

[/b]EventHandles[/b]
L'event Handles e appunto l'ancoraggio di un evento ad un void
Simile ad una maniglia di accesso ad un evento.

Per capire meglio il concetto vi basta aprire dall'esplorazione Risorse
al Form1, Aprire il [b]Form1.Designer.cs[/b]

e ci troveremo in questa riga.


// button1
            // 
            this.button1.Location = new System.Drawing.Point(85, 167);
            this.button1.Name = "button1";
            this.button1.Size = new System.Drawing.Size(75, 23);
            this.button1.TabIndex = 0;
            this.button1.Text = "button1";
            this.button1.UseVisualStyleBackColor = true;
            this.button1.Click += new System.EventHandler(this.button1_Click);


Noterete che da questa classe vengono inizializzati tutti i controlli di Windows.
con relativa posizione, nome, grandezza, ecc.

[i]Da notare...[/i]

this.button1.Click += new System.EventHandler(this.button1_Click);

[i]Al click del bottone1, assegna l'evento button1.click  al void button1_click
[/i]


Possiamo aggiungere anche altri eventi del tipo.
Al passaggio di un mouse su un controllo, cambiare lo sfondo.
abilitarlo o non.

Un esempio su come abilitarlo o disattivare button1 al memento del passaggio del mouse.



1) Creiamo 2 Vuoid Esemp. void button1_in e void button1_out
2) Assegnamo un evento all'handles
3) Gestiamo l'evento.




private void button1_in(object sender, EventArgs e)
        {
            this.button1.Enabled = true;
        }

        private void button1_out(object sender, EventArgs e)
        {
            this.button1.Enabled = false;
        }



Qui dichiariamo 2 void in questo modo.

Provando ad avviare il tutto noteremo che non succede nulla.
Perché non abbiamo assegnato l'evento al void necessario
quindi.

in Form1.Designer.cs

aggiungiamo 2 righe sotto al

//
//Button1
//


al nostro controllo desiderato.


 // 
            // button1
            // 
            this.button1.Location = new System.Drawing.Point(85, 167);
            this.button1.Name = "button1";
            this.button1.Size = new System.Drawing.Size(75, 23);
            this.button1.TabIndex = 0;
            this.button1.Text = "button1";
            this.button1.UseVisualStyleBackColor = true;
            this.button1.Click += new System.EventHandler(this.button1_Click);
            //Altri Eventi
            this.button1.MouseEnter += new System.EventHandler(this.button1_in);
            this.button1.MouseHover += new System.EventHandler(this.button1_out);




Un Alternativa molto più semplice e più pratica,
Possiamo impostare eventi ai controlli direttamente dalla designer del form
in basso su Proprietà cliccando sull'icona in alto simile ad un fulmine.



<< Precedente Prossimo >>
A proposito dell'autore

VB.NET, C#, C++, PHP, MySQL, Javascript , LUA,Infarinatura di Python e Ruby, Grafica Vettoriale (Esperto di CorelDraw) DirectX 9 e XNA Game Studio, Silverlight, jquery, Autoit e Android. Esperto in Unity e Buona conoscenza di Blender. Esperto C# UI Designer Ottima conoscenza sulle tecnologie PBR. Assembly? Sto imparando...