none
Mostrar icono de exclamación en un Msgbox

    Pregunta

  • Hola, quiero saber como muestro el icono de exclamación en un Msgbox cuando ya le había asignado un MsgboxStyle con los botones de si y no como el de esta imagen

    Como se ve tiene MsgboxStyle.OkCancel y también MsgboxStyle.Exclamation

    viernes, 9 de septiembre de 2016 12:49

Respuestas

  • "Michael Cerdas" preguntó:

    > quiero saber como muestro el icono de exclamación en un Msgbox cuando ya le
    > había asignado un MsgboxStyle con los botones de si y no como el de esta imagen

    Hola, Michael:

    Si vas a hacer uso de la clásica función MsgBox de Visual Basic, tienes que combinar los valores de la enumeración MsgBoxStyle mediante el operador Or:

       
    MsgBox("Texto para mostrar", MsgBoxStyle.YesNo Or MsgBoxStyle.Exclamation, "Título del cuadro de diálogo")


    Pero también entiendo que es más fácil e intuitivo usar la sobrecarga adecuada del método compartido Show de la clase System.Windows.Forms.MessageBox para mostrar un mensaje, con su correspondiente icono y botones, en un cuadro de diálogo, tal y como así te ha comentado Joel C. Naupa Crispín:

    MessageBox.Show("Texto para mostrar", "Título del cuadro de diálogo", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation)

    Con lo que obtendrías el mismo cuadro de diálogo que se obtiene con la función MsgBox de Visual Basic y que aparece en la imagen.

    Te comento que la apariencia del cuadro de diálogo mostrado, sea con MsgBox o con MessageBox.Show, cambia en función del sistema operativo que se tenga instalado en el PC donde se muestre: el de tu imagen parece ser que es de Windows 7, siendo de Windows 8 el de Joel C. Naupa Crispín, y el que yo he publicado corresponde a Windows 10.

    Un saludo


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.





    domingo, 11 de septiembre de 2016 14:50
    Moderador
  • Hola Michael Cerdas,

    [-] ... Lo que quiero es que también me salgan los botones Si y no

    Es necesario usar el MsgBox? No puedes usar el MessageBox.

     MessageBox.Show("Usted desea ....", "Continúa ?", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

    Resultado :

    Usando MsgBox.

    MsgBox("Lo que quieras ... ", MsgBoxStyle.YesNo Or MsgBoxStyle.Question, "Título")

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI


    viernes, 9 de septiembre de 2016 17:00

Todas las respuestas

  • Hola Michael Cerdas

    Intenta con 

    MsgBox("Mensaje prueba",MsgBoxStyle.Exclamation, "Continue?")

    Ahí debería cambiar el ícono Question por el de Exclamation.

    suerte y saludos

     

    Javier

    viernes, 9 de septiembre de 2016 13:50
  • Lo que quiero es que también me salgan los botones Si y no
    viernes, 9 de septiembre de 2016 16:25
  • Aquí te va, saludos.-

    MsgBox("Lo que quieras", MsgBoxStyle.Exclamation, MsgBoxStyle.YesNo)

    viernes, 9 de septiembre de 2016 16:56
  • Hola Michael Cerdas,

    [-] ... Lo que quiero es que también me salgan los botones Si y no

    Es necesario usar el MsgBox? No puedes usar el MessageBox.

     MessageBox.Show("Usted desea ....", "Continúa ?", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

    Resultado :

    Usando MsgBox.

    MsgBox("Lo que quieras ... ", MsgBoxStyle.YesNo Or MsgBoxStyle.Question, "Título")

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI


    viernes, 9 de septiembre de 2016 17:00
  • Gracias, voy a probarlo
    viernes, 9 de septiembre de 2016 17:09
  • Michael Cerdas,

    El icono que muestras en la imagen no es del símbolo de exclamación (signo de admiración ¡!), se trata del símbolo de pregunta (signo de interrogación ¿?), tras la aclaración, la constante a usar debería ser MessageBoxIcon.Question propio de una frase interrogativa, para el caso de una advertencia es propio usar una frase de exclamación, para ello la constante a usar sería MessageBoxIcon.Exclamation.


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    viernes, 9 de septiembre de 2016 23:07
  • "Michael Cerdas" preguntó:

    > quiero saber como muestro el icono de exclamación en un Msgbox cuando ya le
    > había asignado un MsgboxStyle con los botones de si y no como el de esta imagen

    Hola, Michael:

    Si vas a hacer uso de la clásica función MsgBox de Visual Basic, tienes que combinar los valores de la enumeración MsgBoxStyle mediante el operador Or:

       
    MsgBox("Texto para mostrar", MsgBoxStyle.YesNo Or MsgBoxStyle.Exclamation, "Título del cuadro de diálogo")


    Pero también entiendo que es más fácil e intuitivo usar la sobrecarga adecuada del método compartido Show de la clase System.Windows.Forms.MessageBox para mostrar un mensaje, con su correspondiente icono y botones, en un cuadro de diálogo, tal y como así te ha comentado Joel C. Naupa Crispín:

    MessageBox.Show("Texto para mostrar", "Título del cuadro de diálogo", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation)

    Con lo que obtendrías el mismo cuadro de diálogo que se obtiene con la función MsgBox de Visual Basic y que aparece en la imagen.

    Te comento que la apariencia del cuadro de diálogo mostrado, sea con MsgBox o con MessageBox.Show, cambia en función del sistema operativo que se tenga instalado en el PC donde se muestre: el de tu imagen parece ser que es de Windows 7, siendo de Windows 8 el de Joel C. Naupa Crispín, y el que yo he publicado corresponde a Windows 10.

    Un saludo


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.





    domingo, 11 de septiembre de 2016 14:50
    Moderador
  • Estimado Enrique,

    Este hilo desde que lo leí me genero confusión, y no creo que el problema sea el hecho de escribir la constante correcta para el icono deseado dado que el usuario lo menciona al escribir su requerimiento. Comente en este post porque me parece incongruente (no digo que no se pueda, de hecho los ejemplos así lo demuestran) que el texto del cuadro de mensaje sea una frase interrogativa y se pretenda colocar un icono que exprese exclamación, me parece que el usuario equivocó en la descripción y ello provocó respuestas variadas a un tema simple. Entiendo que el foro es de tecnologías  de desarrollo y no de reglas gramaticales, sin embargo con el objetivo puesto en cuidar la usabilidad creo que no está demás hacer la aclaración, de hecho este caso me trajo a la mente algunas imágenes que rondan en la web:

    domingo, 11 de septiembre de 2016 18:22
  • "Williams Morales" escribió:

    > Entiendo que el foro es de tecnologías  de desarrollo y no de reglas gramaticales, ...

    Williams, me vas a perdonar, pero por más veces que leo tu respuesta, no comprendo nada. ¿?

    ¿Ha habido algo malo en mi respuesta por indicarle al usuario que utilice el operador Or para combinar los valores de la enumeración MsgBoxStyle con la función MsgBox? Si es así, te agradecería que lo indicaras claramente.

    > ... sin embargo con el objetivo puesto en cuidar la usabilidad creo que
    > no está demás hacer la aclaración, de hecho este caso me trajo a la mente
    > algunas imágenes que rondan en la web:
    >
    > The operation completed successfully.

    ¡Hombre! Si la operación se ha completado con éxito, la verdad es que poco sentido tiene mostrar el icono de error en el cuadro de diálogo.

    > Se malogró el PC

    Y si el PC «ha pasado a mejor vida», pues tampoco es muy acertado que digamos el icono de error; mejor hubiera sido mostrar el icono de información.

    Pero si te soy sincero, sigo sin comprender el motivo de tu respuesta. :-(


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.




    lunes, 12 de septiembre de 2016 6:17
    Moderador
  • hola

    no uses el MsgBox usa el MessageBox.Show()

    Show(IWin32Window, String, String, MessageBoxButtons, MessageBoxIcon)

    entonces veras que puedes definir el icon que quieres mostrar

    Dim Result As DialogResult = MessageBox.Show(Me, Message, Caption, MessageBoxButtons.YesNo, MessageBoxIcon.Question)


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 12 de septiembre de 2016 16:04
  • Estimado Enrique,

    Lamento que tanto la observación realizada como el objetivo de colocar las imágenes no hayan sido comprendidas, es bastante posible que se deba a la falta de claridad en mis redacciones :(.

    No he observado nada respecto a sus respuestas, sin duda son por demás ilustrativas y de contenido útil, me refería básicamente a que encuentro incongruente colocar una frase interrogativa que espera por una respuesta SI o NO y mostrar un icono de sentido exclamativo, vuelvo a colocar la imagen que usted adjuntó:

    Y claro, las imágenes que adjunte tenían como objetivo mostrar precisamente las incongruencias que existen entre el texto de un mensaje, el icono mostrado y los botones que se exponen.

    lunes, 12 de septiembre de 2016 18:19
  • "Williams Morales" escribió:

    > me refería básicamente a que encuentro incongruente colocar una frase interrogativa
    > que espera por una respuesta SI o NO y mostrar un icono de sentido exclamativo, ...
    >
    > es bastante posible que se deba a la falta de claridad en mis redacciones :(.

    La verdad es que a las 8 de la mañana de un lunes me encuentro un mensaje donde se escribe «Entiendo que el foro es de tecnologías  de desarrollo y no de reglas gramaticales...», y no sabía ni por dónde iba el tema. Pero observo que te referías a la incongruencia entre la frase y el icono a mostrar en el cuadro de diálogo de mensajes. Ahora está más claro. ;-)

    Efectivamente, si en el mensaje aparece una pregunta, lo correcto sería mostrar el icono de la pregunta. Pero, ¿qué sucede? Que desde hace unos cuantos años ya no se aconseja utilizar el icono de la pregunta, es decir, el valor de la enumeración MessageBoxIcon.Question, por los siguientes motivos que aparecen en la propia ayuda de MSDN y que cito a continuación:

    [...]
    Question

    El cuadro de mensaje está compuesto por un símbolo que consiste en un signo de interrogación en un círculo. Ya no se recomienda el icono de mensaje de signo de interrogación porque no representa claramente un tipo específico de mensaje y porque la formulación de un mensaje como una pregunta puede aplicarse a cualquier tipo de mensaje. Además, los usuarios pueden confundir el signo de interrogación del mensaje con la información de ayuda. Por lo tanto, no utilice este símbolo de signo de interrogación en los cuadros de mensaje. El sistema seguirá admitiendo su inclusión únicamente por motivos de compatibilidad con las versiones anteriores.
    [...]

    Y llegado a éste punto, pues la verdad es que no sé que decir, si ante una pregunta como «¿Desea eliminar todos los archivos...?» mostrar el icono de Pregunta (?) o de Información (i).

    Los que ya llevamos unos cuantos años conociendo el sistema operativo Windows y programando, no nos vamos a confundir que el icono de Pregunta significa el signo de información de la ayuda, pero puede ser que otros usuarios no tan avanzados pues lo confundan y comiencen hacer clic sobre el mismo para ver si se abre la ayuda. :-))


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.

    lunes, 12 de septiembre de 2016 18:52
    Moderador
  • Estimado Enrique,

    Desconocía la aclaración respecto al uso de la constante Question (por eso mi insistencia en usar el icono con el símbolo de interrogación en una frase interrogativa) y puesto al caso encontré un enlace con ciertas directivas de diseño a tomar en cuenta, Standard Icons.

    Gracias Enrique por la aclaración,

    lunes, 12 de septiembre de 2016 19:11