Creación de un cuadro de mensaje propio en la aplicación de formulario de Windows

Creación de un cuadro de mensaje propio en la aplicación de formulario de Windows

Primero necesitamos saber qué es un MessageBox...

El control MessageBox muestra un mensaje con un texto específico y se puede personalizar especificando una imagen personalizada, un título y conjuntos de botones (estos conjuntos de botones permiten al usuario elegir más que una respuesta básica sí/no).

Al crear nuestro propio cuadro de mensajes, podemos reutilizar ese control de cuadro de mensajes en cualquier aplicación nueva simplemente usando el dll generado o copiando el archivo que contiene la clase.

# Creación del propio control MessageBox.

Para crear nuestro propio control MessageBox simplemente siga la guía a continuación...

  • Abra su instancia de Visual Studio (VS 2008/2010/2012/2015/2017)
  • Vaya a la barra de herramientas en la parte superior y haga clic en Archivo -> Nuevo proyecto --> Aplicación de Windows Forms --> Asigne un nombre al proyecto y luego haga clic en Aceptar.
  • Una vez cargado, arrastre y suelte un control de botón desde la caja de herramientas (que se encuentra a la izquierda) en el formulario (como se muestra a continuación).
  • Haga doble clic en el botón y el entorno de desarrollo integrado generará automáticamente el controlador de eventos de clic para usted.
  • Edite el código del formulario para que tenga el siguiente aspecto (puede hacer clic con el botón derecho en el formulario y hacer clic en Editar código):
  • 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");
            }
        }
    }
    
    
  • Explorador de soluciones -> Haga clic derecho en su proyecto --> Agregar --> Windows Form y establezca el nombre como "CustomMsgBox.cs"
  • Arrastre un control de botón y etiqueta desde la caja de herramientas al formulario (luego de hacerlo, se verá similar al siguiente formulario):
    1. Ahora escriba el código a continuación en el formulario recién creado:
    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();
    }
    
    
  • Ahora ejecute el programa simplemente presionando la tecla F5. Felicitaciones, ha creado un control reutilizable.
  • # Cómo usar el control de cuadro de mensaje creado en otra aplicación Windows Form.

    Para encontrar sus archivos .cs existentes, haga clic derecho en el proyecto en su instancia de Visual Studio y haga clic en Abrir carpeta en el Explorador de archivos.

  • Visual Studio --> Su proyecto actual (Windows Form) --> Explorador de soluciones --> Nombre del proyecto --> Haga clic con el botón derecho --> Agregar --> Elemento existente --> Luego ubique su archivo .cs existente.
  • Ahora hay una última cosa que hacer para usar el control. Agregue una declaración de uso a su código, para que su ensamblado conozca sus dependencias.
    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.
    
    
  • Para mostrar el cuadro de mensaje, simplemente use lo siguiente... CustomMsgBox.Show("Su mensaje para el cuadro de mensaje...","MSG","OK");
  • # Sintaxis

    • 'resultado de DialogResult estático =DialogResult.No; //DialogResult es devuelto por diálogos después del cierre.'