Pregunta

Estoy intentando mostrar un mensaje simple, lo cual probablemente he hecho miles de veces en el pasado, y AHORA...La cadena de texto completa NO se muestra en el cuadro de mensaje.No estoy haciendo nada diferente, así que no veo el problema.Aquí está mi código:

if (MessageBox.Show("The text in this file has changed. Do you want to save changes?",
    "TextEditor - Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
{ //Do stuff 
} else { 
// Do stuff }

Ahora, cuando se muestra el cuadro de mensaje, el único texto visible es este:

El texto de este archivo ha cambiado.

NOTA:Los botones Sí/No son visibles, y el cuadro de mensaje se ve normal, no parece roto ni nada, así que no tengo idea de por qué ya no puedo mostrar una simple pregunta allí.¿Alguien sabe de esto?¿Has experimentado esto antes?

Gracias

OK, ESTO ES EXTRAÑO...(EDITADO)

Acabo de cambiar el texto del cuadro de mensaje anterior y ahora muestra lo siguiente:

El texto de este archivo ha cambiado.¿Quieres

Pero la parte más importante de la pregunta aún no se muestra...

¿Fue útil?

Solución 9

Acabo de resolver este problema.Estoy usando Windows XP Home Edition y también estoy usando WindowBlinds de Stardock para embellecer la interfaz de WindowsXP de 500 años de antigüedad.Esto nunca ha causado ningún problema en el pasado, he estado usando WindowBlinds durante años y también haciendo cosas de C# durante aproximadamente un año y medio, y esta es la primera vez que WindowBlinds ha causado algún problema.

La razón por la que solo se mostraba una parte del texto en el cuadro de mensajes todavía es un misterio, PERO tan pronto como decidí intentar cerrar WindowBlinds y aplicar el tema estándar de XP nuevamente...Todos los cuadros de mensajes funcionan correctamente en C#.


Gracias a TODOS por sus buenas sugerencias, son muy apreciadas. :u)

Jason Pezzimenti

Otros consejos

Un par de cosas para probar:
1) Si se ejecuta la versión de depuración, tratar de compilar y ejecutar la versión de lanzamiento
2) Trate de crear un proyecto completamente nuevo y copiando el código para el nuevo proyecto y ejecutarlo (podría ser un ajuste del proyecto fue cambiado, entonces se podría diff los archivos)
3) Prueba a desactivar cualquier software antivirus que tenga.

has - sólo para estar seguro - para escapar de toda la cadena de prefijándolo con un signo @?

, así:


if (MessageBox.Show(@"The text in this file has changed. Do you want to save changes?",
    @"TextEditor - Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
{ //Do stuff 
} else { 
// Do stuff }

¿trató de poner el texto en un juste variable para ver si funciona?

string message = @"The text in this file has changed. Do you want to save changes?";
string title = "TextEditor - Confirmation";

if (MessageBox.Show,(message, title, MessageBoxButtons.YesNo, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1) == DialogResult.Yes){ //Do stuff } else { // Do stuff }

Es algo extraño / estúpida - es el momento de actuar hacia atrás por ser estúpida

Primera pregunta - están todos sus cuadros de mensaje afectados? Si no, entonces este caso tiene algo de malo. Si todos ellos están afectados entonces ... bueno, no sé qué sugerir realmente. Más café?

Lo mejor que puedes hacer es reducir el problema hasta el mínimo posible. Crear un nuevo cuadro de mensaje y sólo introducir el texto actual (copiar y pegar). Dont configurar cualquiera de los otros parámetros y llevarlo a cabo de la declaración if

Si eso funciona, entonces el problema es con los parámetros  - añadir lentamente los parámetros hasta que se rompe

Si no está de entonces el problema es con el texto  - eliminar el texto y vuelva a - puede haber un extraño personaje no - por ejemplo, tiene el texto estado cerca de MS Word ...  - si funciona, entonces usted es de oro  - de lo contrario, borrar palabra por palabra, hasta que empiece a funcionar

Creo que se dará cuenta que algo realmente estúpido

El espacio entre "cambiado". y "No" no sería un personaje extraño (decir NULL), ¿verdad? Tratar de eliminar todo el texto y vuelva a escribirla a mano.


Hmm ... acabo de recordar algunos errores viejo raro con McAffee antivirus y .NET con lo cual todo el contenido de los cuadros de mensajes desaparecerían. sin embargo, esto fue hace más de 5 años ...

Tal vez intente actualizar su PC? Y - Por casualidad no estar funcionando McAffee, ¿verdad? :)


Idea N ° 3: Envíenos su los archivos de origen compilado .EXE y?
Idea N ° 4: Recopilar, entonces rasgar abrir con reflector y comprobar cómo se ha compilado. Los compiladores tienen errores también ...

Lo he intentado también y parece que funciona bien. Tal vez compruebe la configuración regional / idioma en la máquina de su ejecutarlo en?

No hay tamaño del conjunto de cuadros de mensaje en los form.Designer.cs ¿verdad?

¿Ha intentado crear otra solución con 1 forma y el siguiente código - por cierto obras formar mi VS2008 WinXP es-es lang

using System;

using System.ComponentModel;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            if (MessageBox.Show("The text in this file has changed. Do you want to save changes?", "TextEditor - Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
            {
                MessageBox.Show("yes");
            }
            else
            {
                MessageBox.Show("no");
            }


        }
    }
}

¿Sería posible intentar una nueva línea \ n después de "cambiado"?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top