Creazione di un proprio MessageBox nell'applicazione Windows Form

Creazione di un proprio MessageBox nell'applicazione Windows Form

Per prima cosa dobbiamo sapere cos'è un MessageBox...

Il controllo MessageBox visualizza un messaggio con il testo specificato e può essere personalizzato specificando un'immagine, un titolo e un set di pulsanti personalizzati (questi set di pulsanti consentono all'utente di scegliere più di una risposta sì/no di base).

Creando il nostro MessageBox possiamo riutilizzare quel MessageBox Control in qualsiasi nuova applicazione semplicemente usando la dll generata o copiando il file contenente la classe.

# Creazione del proprio controllo MessageBox.

Per creare il nostro controllo MessageBox, segui semplicemente la guida qui sotto...

  • Apri la tua istanza di Visual Studio (VS 2008/2010/2012/2015/2017)
  • Vai alla barra degli strumenti in alto e fai clic su File -> Nuovo progetto --> Applicazione Windows Forms --> Assegna un nome al progetto e quindi fai clic su OK.
  • Una volta caricato, trascina e rilascia un pulsante di controllo dalla Casella degli strumenti (che si trova a sinistra) sul modulo (come mostrato di seguito).
  • Fai doppio clic sul pulsante e l'ambiente di sviluppo integrato genererà automaticamente il gestore di eventi clic per te.
  • Modifica il codice per il modulo in modo che assomigli al seguente (puoi fare clic con il pulsante destro del mouse sul modulo e fare clic su Modifica codice):
  • namespace MsgBoxExample {
        public partial class MsgBoxExampleForm : Form {
            //Constructor, called when the class is initialised.
            public MsgBoxExampleForm() {
                InitializeComponent();
            }
    
            //Called whenever the button is clicked.
            private void btnShowMessageBox_Click(object sender, EventArgs e) {
               CustomMsgBox.Show($"I'm a {nameof(CustomMsgBox)}!", "MSG", "OK");
            }
        }
    }
    
    
  • Esplora soluzioni -> Fai clic con il pulsante destro del mouse sul tuo progetto --> Aggiungi --> Windows Form e imposta il nome come "CustomMsgBox.cs"
  • Trascina un controllo pulsante ed etichetta dalla Casella degli strumenti al modulo (dopo averlo eseguito, avrà un aspetto simile al modulo seguente):
    1. Ora scrivi il codice qui sotto nel modulo appena creato:
    private DialogResult result = DialogResult.No;
    public static DialogResult Show(string text, string caption, string btnOkText) {
        var msgBox = new CustomMsgBox();
        msgBox.lblText.Text = text; //The text for the label...
        msgBox.Text = caption; //Title of form
        msgBox.btnOk.Text = btnOkText; //Text on the button
        //This method is blocking, and will only return once the user
        //clicks ok or closes the form.
        msgBox.ShowDialog(); 
        return result;
    }
    
    private void btnOk_Click(object sender, EventArgs e) {
        result = DialogResult.Yes;
        MsgBox.Close();
    }
    
    
  • Ora esegui il programma premendo semplicemente il tasto F5. Congratulazioni, hai realizzato un controllo riutilizzabile.
  • # Come utilizzare il controllo MessageBox creato in un'altra applicazione Windows Form.

    Per trovare i file .cs esistenti, fai clic con il pulsante destro del mouse sul progetto nella tua istanza di Visual Studio e fai clic su Apri cartella in Esplora file.

  • Visual Studio --> Il tuo progetto corrente (Windows Form) --> Esplora soluzioni --> Nome progetto --> Fare clic con il pulsante destro del mouse --> Aggiungi --> Elemento esistente --> Quindi individuare il file .cs esistente.
  • Ora c'è un'ultima cosa da fare per usare il controllo. Aggiungi un'istruzione using al codice, in modo che l'assembly sia a conoscenza delle sue dipendenze.
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    .
    .
    .
    using CustomMsgBox; //Here's the using statement for our dependency.
    
    
  • Per visualizzare la finestra di messaggio, utilizzare semplicemente il seguente...CustomMsgBox.Show("Il tuo messaggio per la finestra di messaggio...","MSG","OK");
  • # Sintassi

    • 'risultato DialogResult statico =DialogResult.No; //DialogResult viene restituito dalle finestre di dialogo dopo la chiusura.'