Quiero un tipo de propiedad de temporizador para cuadros de mensaje. Después de mostrar el error, debe desaparecer sin la intervención del usuario después de 5 segundos.¿Cómo ocultar automáticamente el cuadro de mensaje?
Respuesta
timer.Interval=5000;
timer.Enabled=true;
MessageBox.Show("Should close automatically");
Asociado con el siguiente fragmento Tick
eventhandler del temporizador:
private void timer_Tick(object sender,EventArgs evt) {
timer.Enabled=false;
SendKeys.Send("{ESC}"); // SendWait as alternative
}
No es posible con la clase MessageBox
; tienes que crear tu propio formulario que lo imite y agregar esta característica tú mismo.
Bueno, puedes hacer esto con los cuadros de mensaje de la API de Windows. Solo tiene que agarrar el asa de la ventana de los cuadros de mensaje y luego publicar un mensaje WM_CLOSE una vez que el temporizador se dispare. Asegúrese de anotar el evento del cierre de la ventana y abandonar el temporizador en esa eventualidad. Solo necesitarías un poco de P/Invoke. Pero una mejor solución es no usar un cuadro de diálogo según mi respuesta a esta pregunta. –
Probablemente debería haberlo redactado como "' MessageBox' no tiene esa característica; necesita una solución alternativa ". – BeemerGuy
Un cuadro de mensaje es la solución incorrecta. Necesitas una ventana de sugerencia.
¿Qué es una "ventana de sugerencia"? Si algo en formularios en Windows es nuevo para mí, si es algo que creas, es una respuesta demasiado delgada. – Murph
¿Es una respuesta demasiado delgada si tiene que hacer algún trabajo? Estoy pensando en el tipo de mensajes que muestra Windows cuando las actualizaciones se han actualizado. Podrías mostrar fácilmente una ventana sin cromo y simplemente matarla después de 5 s, pero debe haber algún componente de sistema estándar. –
¿Qué pasa con el uso de sendkeys?
Algo como esto:
http://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.send.aspx
al menos para que pueda empezar en la investigación.
Si esto es en una página web, puede utilizar javascript o jQuery para un efecto bastante agradable. Esto se conoce como "fade" animation. Utiliza un temporizador.
Con este enfoque, no usaría una alerta real o MessageBox. Utiliza un <div>
o algún otro elemento HTML con nombre.
Puede encontrar el código here para lo que está haciendo usando javascript.
O si está utilizando jQuery, busque fadeOut
. Aquí hay uno article.
- 1. Cerrar automáticamente el cuadro de mensaje en C#
- 2. Cómo personalizar el cuadro de mensaje
- 3. Cómo mostrar el cuadro de mensaje de error y advertencia en .NET/Cómo personalizar el cuadro de mensaje
- 4. Cuadro de mensaje personalizado
- 5. ¿Cómo usar el cuadro de mensaje en el controlador MVC?
- 6. ¿Cómo ocultar el mensaje de compilación en Makefile?
- 7. ¿Cómo ocultar el cursor parpadeante del cuadro de texto?
- 8. Ocultar automáticamente UINavigationBar y UIToolbar
- 9. cuadro de mensaje en jquery
- 10. Win32 cuadro de mensaje personalizado
- 11. Ocultar barra de menús de Eclipse (ocultar automáticamente)
- 12. Cuadro de mensaje en Python
- 13. C# Resultado del cuadro de diálogo Mensaje
- 14. jQuery simple - ocultar cuadro de texto
- 15. WPF - ocultar elementos del cuadro de lista
- 16. responder la respuesta desde el cuadro de mensaje C#
- 17. Wix: mostrar el cuadro de mensaje condicional sin cancelar
- 18. Mensaje de centro en el cuadro de diálogo de Android
- 19. C# Cuadro de mensaje, uso variable
- 20. C# Winforms Propiedades del cuadro de mensaje
- 21. aplicación GTK del cuadro de mensaje
- 22. El cuadro de mensaje C#/.NET no es modal
- 23. ¿Cómo implemento un cuadro de mensaje en una aplicación Cocoa?
- 24. ¿Cómo crear un cuadro de mensaje con tkinter?
- 25. coloca automáticamente el cuadro de texto en matplotlib
- 26. ¿Cómo hacer clic automáticamente en un cuadro de confirmación?
- 27. ¿Cómo obtener el valor de la celda DataGridView en el cuadro de mensaje?
- 28. becomeFirstResponder sin ocultar el teclado
- 29. Cómo mostrar el valor impreso por consulta sql en el cuadro de mensaje
- 30. Cómo cerrar (ocultar automáticamente) Ventana de WPF después de 10 segundos usando el temporizador
+1; esto SÍ funciona como una solución alternativa. Mi respuesta fue específica para la clase 'MessageBox' =) – BeemerGuy
Hay una serie de razones por las que esto es malo, más aún si es un cuadro de mensaje que se abrió en primer lugar y, por lo tanto, ya podría haberse cerrado. – Murph