Durante una actualización complicada, es posible que prefiera mostrar todos los cambios a la vez. Sé que hay un método que me permite hacer esto, pero ¿qué es?¿Cómo desactivo la actualización de un formulario en Windows Forms?
Respuesta
creo this.SuspendLayout() & ResumeLayout() debe hacerlo
más compleja de terceros Windows Forms componentes tienen BeginUpdate
y EndUpdate
métodos o similares, para llevar a cabo un lote de cambios y luego dibujo del controlar. En el nivel de formulario, no existe tal cosa, pero podría interesarle habilitar Double buffering.
Puede utilizar los métodos SuspendLayout y ResumeLayout en el formulario o los controles al actualizar las propiedades. Si está vinculando datos a los controles, puede usar los métodos BeginUpdate y EndUpdate.
SuspendLayout ayudará rendimiento si los cambios implican cambios en los controles y el diseño: MSDN
Puede usar el viejo Win32LockWindowUpdate función:
[DllImport("user32.dll")]
private static extern long LockWindowUpdate(long Handle);
try {
// Lock Window...
LockWindowUpdate(frm.Handle);
// Perform your painting/updates...
}
finally {
// Release the lock...
LockWindowUpdate(0);
}
Hmmmm. Interesante. –
Pruebe esta sintaxis en su lugar: private static extern long LockWindowUpdate (IntPtr Handle); y LockWindowUpdate (IntPtr.Zero); –
LockWindowUpdate no está diseñado ni tiene la intención de detener el parpadeo. Debería usar 'SetWindowRedraw (hwnd, false)'. (http://blogs.msdn.com/b/oldnewthing/archive/2004/06/10/152612.aspx) –
no encuentro SuspendLayout() y ResumeLayout() hace lo que estás pidiendo. El LockWindowsUpdate() mencionado por moobaa hace el truco. Sin embargo, LockWindowUpdate solo funciona para una ventana a la vez.
También puede probar esto:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32;
using System.Runtime.InteropServices;
namespace WindowsTest
{
public partial class Form1 : Form
{
[DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, Int32 wMsg, bool wParam, Int32 lParam);
private const int WM_SETREDRAW = 11;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
SendMessage(this.Handle, WM_SETREDRAW, false, 0);
// Do your thingies here
SendMessage(this.Handle, WM_SETREDRAW, true, 0);
this.Refresh();
}
}
}
- 1. ¿Cómo hago un formulario modal en Windows Forms?
- 2. Etiqueta de actualización durante el procesamiento en Windows Forms
- 3. establecer Form.Text en Windows Forms Formulario no actualiza el título
- 4. Obtener la ruta de un archivo arrastrado a un formulario de Windows Forms
- 5. Windows Forms: capturar MouseWheel
- 6. ¿Cómo obtengo todos los controles de un formulario en Windows Forms?
- 7. Fuente predeterminada para la aplicación Windows Forms
- 8. Interfaz web para la aplicación Windows Forms
- 9. Windows Forms, obteniendo una propiedad del formulario principal
- 10. ¿Cómo desactivo la opción de formulario de contacto personal en el formulario de edición de usuario?
- 11. Alinear controles al centro de un formulario en el Diseñador de Windows Forms
- 12. Eliminar la barra de título en Windows Forms
- 13. Tab Index en Windows Forms
- 14. llamadas multihilo en la aplicación Windows Forms?
- 15. ¿Cómo se usa Ninject en una aplicación de Windows Forms?
- 16. Dibuje un solo píxel en Windows Forms
- 17. Incrustar una instancia de File Explorer en un formulario de aplicación Windows Forms
- 18. Borrando DrawRectangle en Windows Forms
- 19. ¿Evita el parpadeo en Windows Forms?
- 20. ¿Cómo desactivo el UAC con Windows PowerShell?
- 21. Barras de menú estándar de Windows en Windows Forms
- 22. Crear un archivo en la carpeta userfiles (C#, Windows Forms)
- 23. Windows Forms - Multiple Event Loops
- 24. ProgressBar es lenta en Windows Forms
- 25. Cómo crear un enlace de correo en la aplicación de Windows Forms
- 26. Windows Forms - ErrorProvider + DataGridView
- 27. Restore C# Windows Forms backcolor
- 28. ¿Cómo imitar el evento onBlur de JavaScript en Windows Forms?
- 29. ¿Cómo desactivo los nombres de archivo de Windows en Java?
- 30. Windows Forms Separator Control
métodos BeginUpdate y EndUpdate en la que? Un formulario no los tiene. –