2008-09-08 30 views
12

Acabo de instalar C# por primera vez, y a primera vista parece ser muy similar a VB6. Decidí comenzar tratando de hacer un '¡Hola mundo!' UI Edition.¿Cómo creo un MessageBox en C#?

Empecé en el Diseñador de formularios e hice un botón llamado "¡Haga clic en mí!" procedió hacer doble clic en él y escrito en

MessageBox("Hello, World!"); 

recibí el siguiente error:

de mensaje es un 'tipo' sino que se utiliza como una 'variable'

Muy bien, parece que en C# MessageBox es un objeto. He intentado lo siguiente

MessageBox a = new MessageBox("Hello, World!"); 

recibí el siguiente error: de mensaje no contiene un constructor que toma argumentos '1'

Ahora estoy confundido. Por favor ayuda.

+1

A medida que aprenda C#, mantenga su fundación orientada a objetos en mente A diferencia de js o. php, donde las llamadas a tu método son a menudo 'method()', en C# tus llamadas son 'object.method()'. Por ejemplo: 'Console.WriteLine()' en oposición a 'print()'. – Dinah

Respuesta

37

MessageBox.Show también devuelve un DialogResult, que si coloca algunos botones allí, significa que puede hacer que se devuelva lo que el usuario hizo clic. La mayoría de las veces escribo algo así como

if (MessageBox.Show("Do you want to continue?", "Question", MessageBoxButtons.YesNo) == MessageBoxResult.Yes) { 
    //some interesting behaviour here 
} 

que supongo que es un poco difícil de manejar, pero hace el trabajo.

+0

Creo que debería ser MessageBoxButton en lugar de DialogBoxButtons y MessageBoxResult en lugar de DialogResult. – Smolla

+0

@Smolla: No olvide actualizar la prosa, así como la muestra del código. –

+0

DialogResult.Sí . Consulte http://msdn.microsoft.com/en-us/library/system.windows.forms.dialogresult.aspx para obtener más miembros enum. – jim31415

14
using System.Windows.Forms; 

... 

MessageBox.Show("hello world"); 
8

Es una función estática en la clase de mensaje, la forma más sencilla de hacer esto es usar

MessageBox.Show("my message"); 

en la clase System.Windows.Forms. Puede encontrar más en la página msdn para este here. Entre otras cosas, puede controlar el texto, el título, el botón predeterminado y los iconos del cuadro de mensaje. Como no especificó, si está tratando de hacer esto en una página web, debería considerar activar la alerta de javascript ("mi mensaje"); o confirmar ("mi pregunta"); funciones.

-1

En la clase System.Windows.Forms, puede encontrar más en la página MSDN aquí. Entre otras cosas, puede controlar el texto, el título, el botón predeterminado y los iconos del cuadro de mensaje. Como no especificó, si está tratando de hacer esto en una página web, debe buscar activando las funciones de javascript alert("my message"); o confirm("my question");.

0

Esto es algo que puede poner en un cuadro de mensaje. Disfrutar de
MessageBox.Show("Enter the text for the message box",
"Enter the name of the message box",
(Enter the button names e.g. MessageBoxButtons.YesNo),
(Enter the icon e.g. MessageBoxIcon.Question),
(Enter the default button e.g. MessageBoxDefaultButton.Button1)

Más información se puede encontrar here

5

Trate continuación Código:

MessageBox.Show("Test Information Message", "Caption", MessageBoxButtons.OK, MessageBoxIcon.Information); 
+0

USE POR FAVOR: "using System.Windows.Forms;" EN LA PARTE SUPERIOR –

+2

esta pregunta fue hecha y respondida en 2008 con una respuesta aceptada. por qué repetir las mismas respuestas –

+0

Cuando responda, informe al OP por qué funciona y su código no. En este caso, usa un método estático, pero está intentando crear una nueva instancia. – joe

0

me dieron el mismo error 'System.Windows.Forms.MessageBox' es un 'tipo', pero se usa como una 'variable', aunque usando:

MessageBox.Show("Hello, World!"); 

Creo que mis intentos iniciales con inval La sintaxis de id causó algún tipo de error y terminé solucionándolo agregando un espacio entre "MessageBox".Mostrar" y los paréntesis():

MessageBox.Show ("Hello, World!"); 

Ahora, utilizando la sintaxis original sin el espacio adicional funciona de nuevo:

MessageBox.Show("Hello, World!"); 
+0

Esto realmente no responde la pregunta. Si tiene una pregunta diferente, puede formularla haciendo clic en [Preguntar pregunta] (http://stackoverflow.com/questions/ask). También puede [agregar una recompensa] (http://stackoverflow.com/help/privileges/set-bounties) para atraer más atención a esta pregunta una vez que tenga suficiente [reputación] (http://stackoverflow.com/help/ que-reputación). –

+0

Esto responde la pregunta indirectamente, porque esta fue la solución que resolvió mi problema, ya que recibía el mismo error que el póster original. Mi pregunta también fue cómo crear un cuadro de mensaje en C#, pero ninguna de las respuestas aquí resolvió mi problema. – KeithJ