Come creare una Rubrica Telefonica in C# – #22 – Sistema di Notifica

Come creare una Rubrica Telefonica in C# - Lezione 22 -Sistema di Notifica

Come creare una Rubrica Telefonica in C# – #22 – Sistema di Notifica: Proseguendo con la creazione della nostra rubrica telefonica, andiamo a creare la struttura di base che ci permetterà di inviare notifiche agli utenti.

Il sistema di notifica che andremo ad utilizzare è personalizzato, quindi non utilizzeremo quello di Windows, ma ne andremo a creare uno nostro.

Per farlo utilizzeremo un Form che funzionerà da notifica, al quale passeremo le informazioni da mostrare.

La creazione del Form è identica a quella vista per tutti gli altri form creati fino ad ora.

Le differenze importanti, da cambiare sono:

  • StartPosition = Manual
  • FormBorderStyle = None

Queste 2 impostazioni ci permettono rispettivamente di scegliere la posizione iniziale del form, e di rimuovere il bordo, quindi il nostro form non avrà una finestra con titolo, e tasto di chiusura.

Possiamo modificare anche altre impostazioni, ma queste 2 sono quelle fondamentali per il funzionamento del nostro form/notifica.

Dopo aver scelto le misure in larghezza e altezza del form, possiamo passare al suo contenuto.

Andiamo ad inserire 3 elementi:

  • 1 PictureBox
  • 1 Label
  • 1 TextBox

La PictureBox ci servirà per mostrare l’icona relativa alla notifica (ad esempio una torta per i compleanni).

La Label invece conterrà il titolo della notifica (ad esempio la parola Compleanni)

Mentre nella TextBox andremo ad inserire le notifiche da visualizzare.

Possiamo personalizzare l’aspetto del form (scegliendo i colori che preferiamo) perchè questo non influirà con le prossime lezioni.

IMPORTANTE: Per quanto riguarda i Font, è consigliabile usare sempre font di sistema, che sicuramente si troveranno sui PC degli utenti.

In alternativa è possibile far installare il font utilizzato insieme al software (va installato nella cartella Windows\Fonts.

Come creare una Rubrica Telefonica in C# – #22 – Sistema di Notifica

Caricamento del Form

private void Notifica_Load(object sender, EventArgs e)
        {
            int LarghezzaSchermo = Screen.PrimaryScreen.Bounds.Width;
            int AltezzaSchermo = Screen.PrimaryScreen.Bounds.Height;
            this.Left = LarghezzaSchermo - this.Width;
            this.Top = AltezzaSchermo / 2 - this.Height / 2;
        }

Al caricamento del Form, andremo ad eseguire 4 operazioni, le prime 2 ci serviranno per sapere la risoluzione dello schermo dell’utente e salvarla in 2 variabili.

Le altre 2 ci serviranno per posizionare il nostro forma sul margine destro dello schermo esattamente a metà schermo.

Uso della libreria user32.dll

Per la notifica, andremo a creare un’animazione che permetterà al form di scorrere dall’esterno dello schermo verso la posizione reale.

Per farlo utilizzeremo la libreria di Windows user32.dll

Le librerie del Framework .NET sono già integrate e non vanno richiamate esternamente, quelle di Windows invece no.

Infatti per tutte le librerie di Windows da utilizzare, abbiamo bisogno di effettuare una chiamata che permetterà al nostro software di dialogare con loro.

Vediamo quindi come farla.

Per cominciare dobbiamo inserire:

using System.Runtime.InteropServices;

Ad inizio codice.

Poi per dialogare con la librerie di Windows, dovremo copiare esattamente questo codice:

[DllImport("user32.dll")]
        static extern bool AnimateWindow(IntPtr Finestra, int Durata, AnimateWindowFlags flags);
        [Flags]
        enum AnimateWindowFlags
        {
            AW_HOR_POSITIVE = 0x0000000,
            AW_HOR_NEGATIVE = 0x00000002,
            AW_VER_POSITIVE = 0x00000004,
            AW_VER_NEGATIVE = 0x00000008,
            AW_CENTER = 0x00000010,
            AW_HIDE = 0x00010000,
            AW_ACTIVATE = 0x00020000,
            AW_SLIDE = 0x00040000,
            AW_BLEND = 0x00080000
        }

Le prime 2 righe indicano quale DLL andare a leggere, e a quale metodo assegnarla.

da [Flags] in poi invece andiamo ad indicare quali valori utilizzare con il metodo associato alla libreria.

In questo caso utilizziamo dei valori che indicano diversi tipi di animazione associabili alle finestre di Windows.

Questo codice va inserito all’interno di una classe.

Poi è possibile richiamare l’animazione scrivendo:

            AnimateWindow(this.Handle, 800, AnimateWindowFlags.AW_SLIDE | AnimateWindowFlags.AW_HOR_NEGATIVE);

I parametri passati indicano che l’animazione va eseguita sul form che la sta avviando (this.Handle), che dovrà durare 800 millisecondi (800), e che l’animazione dovrà scorrere in orizzontale, da destra verso sinistra (AnimateWindowFlags.AW_SLIDE | AnimateWindowFlags.AW_HOR_NEGATIVE)

author avatar
Claudio Masci
Sono innanzitutto un appassionato di informatica e tecnologia in generale. Lavoro in ambito informatico da circa 16 anni, spaziando in diversi campi, andando dalla programmazione web, allo sviluppo di software, dalla grafica alla modellazione 3d ed al video editing, ho sempre voluto approfondire ogni aspetto e questo mi ha permesso di lavorare in diversi ambiti informatici.