Pregunta

Tengo una aplicación MDI. Cuando muestro un cuadro de mensaje usando MessageBox.Show (), la aplicación completa desaparece detrás de todas mis ventanas abiertas cuando descarto el cuadro de mensaje.

El código no está haciendo nada especial. De hecho, aquí está la línea que invoca el cuadro de mensaje desde un formulario secundario MDI:

MessageBox.Show(String.Format("{0} saved successfully.", Me.BusinessUnitTypeName), "Save Successful", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly)

Me.BusinessUnitTypeName () es un captador de propiedades de solo lectura que devuelve una cadena, dependiendo del valor de una variable miembro. No hay efectos secundarios en esta propiedad.

¿Alguna idea?

¿Fue útil?

Solución

Eliminar el último parámetro, MessageBoxOptions.DefaultDesktopOnly .

De MSDN :

  

DefaultDesktopOnly causará la   Aplicación que levantó el MessageBox.   perder el foco. El MessageBox que es   mostrado no utilizará estilos visuales.   Para más información, ver Representación.   Controles con estilos visuales.

¡El último parámetro permite la comunicación de un Servicio de Windows en segundo plano con el escritorio activo a través de csrss.exe! Consulte la publicación de blog de Bart de Smet para obtener más información.

Otros consejos

Elimine el parámetro MessageBoxOptions.DefaultDesktopOnly y funcionará correctamente.

DefaultDesktopOnly especifica que " El cuadro de mensaje se muestra en el escritorio activo " lo que provoca la pérdida de enfoque.

Estas respuestas son correctas, pero quería agregar otro punto. Me encontré con esta pregunta mientras trabajaba con el código de otra persona. Un simple cuadro de mensaje provocaba que la ventana frontal más se moviera hacia atrás:

MessageBox.Show (" Hola ").

Resulta que había un comando BindingSource.Endedit antes del MessageBox. El BindingSource no estaba conectado a ningún control todavía, pero causó que la ventana cambiara las posiciones z.

Solo incluyo esta nota ya que mi búsqueda me llevó a esta pregunta y pensé que podría ser útil para otra persona.

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