SuspendLayout Bug Problem

Mein Problem: Ich möchte zur Laufzeit ein Panel mit Textboxen füllen. Aber man sieht wie sich jede Textbox aufbaut, obwohl vor Füllen Form+Panel.SupendLayout() aufgerufen wird und danach ResumeLayout(). Laut MSDN: The layout logic of the control is suspended until the ResumeLayout method is called. Komisch nur dass im InitializeComponent() genau das gleiche gemacht wird, dort aber sieht man den Aufbau der Textboxen nicht. Lösung: (mittels pinvoke)  [DllImport("user32", CharSet = CharSet.Auto)]  private extern static IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, IntPtr lParam);   // Stop redrawing:   SendMessage(panelContainer.Handle, WM_SETREDRAW, 0, IntPtr.Zero);   // Stop sending of events:   eventMask = SendMessage(panelContainer.Handle, EM_GETEVENTMASK, 0, IntPtr.Zero);   // *** Controls hinzufügen usw.... ***   // turn on events   SendMessage(panelContainer.Handle, EM_SETEVENTMASK, 0, eventMask);   // turn on redrawing   SendMessage(panelContainer.Handle, WM_SETREDRAW, 1, IntPtr.Zero); ODER:  [DllImport("user32.dll")]  public static extern bool LockWindowUpdate(IntPtr hWndLock);   LockWindowUpdate(panelContainer.Handle);   // *** Controls hinzufügen usw.... ***   LockWindowUpdate(IntPtr.Zero); gefunden auf: Use LockWindowUpdate to get flicker-free RichTextBox update

No comments:

Post a Comment

Latest Posts

Popular Posts