2011-01-04 15 views
5

Estoy experimentando un comportamiento extraño al usar MessageBox (es) en un programa C#/WPF.Problema con MessageBox (es)

Crea una aplicación básica de WPF con algunas etiquetas y un botón.

Este es el código del botón haga clic

private void button1_Click(object sender, RoutedEventArgs e) 
    { 
     MessageBoxResult result; 
     do 
     { 

      result = MessageBox.Show(this, "Please Click here under", "TestBugMessageBox", MessageBoxButton.OKCancel, MessageBoxImage.Information, MessageBoxResult.None); 
      if (result.Equals(MessageBoxResult.OK)) 
      { 
       result = MessageBox.Show(this, "Is it the first time you see it ?", "TestBugMessageBox", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.None); 
      } 
     } while (result.Equals(MessageBoxResult.Yes)); 
    } 

luego colocar las ventanas en el centro de la pantalla (para que el cuadro de mensaje para cubrir algunas etiquetas)

haga clic en Sí tres veces, y sin la última vez y verá el problema (espero):

el cuadro de mensaje muestra permanece en la aplicación.

¿Podría decirme qué tiene de malo?

+0

se comporta bien para mí ... – BrokenGlass

+0

hecho, me hizo el fuego de Visual Studio para compilar esto, y no se puede saber cuál es el problema. Entonces parece que vas a tener que decirnos. Ninguna combinación de clics puede hacer que permanezca en la pantalla. –

+0

Bien para mí también. ¿Puedes darnos una pista? – TheEvilPenguin

Respuesta

0

Acabo de intentar esto en un sistema multi monitor de 64 bits de Windows 7 en Visual Studio .NET 2010 con 4.0 C#/WPF y que funcionó muy bien para mí.

La única diferencia es que mi MessageBox.Show no toma en el 'este' objeto.

¿Está utilizando System.Windows.MessageBox?

Es posible que simplemente necesita una actualización de Windows y/o una reinstalación del marco .NET.

1

¿Está depurando y permanecer en un punto de interrupción en el bucle do..while? Si la respuesta es "sí", debe eliminar los puntos de interrupción: wpf no puede volver a dibujar la superficie de su ventana si bloquea un ciclo en el hilo principal.

EDITAR: Incluso depurar y romper el do ... mientras que no pude reproducir el comportamiento descrito. El problema del que hablé es solo cuando se detiene el hilo de la interfaz de usuario (por ejemplo, al anular Medida || Organizar métodos y depurarlos), no el hilo principal. Lo siento.