Note that there are some explanatory texts on larger screens.

plurals
  1. POBlack margins appear when expanding form?
    text
    copied!<p>Create a .net 2.0 Windows form app, add a splitContainer docked Fill, with this in its form constructor:</p> <pre><code>public Form1() { InitializeComponent(); for (int i = 1; i &lt;= 300; i++) { FlowLayoutPanel f = new FlowLayoutPanel(); f.Dock = DockStyle.Fill; Button b = new Button(); f.Controls.Add(b); splitContainer1.Panel2.Controls.Add(f); } } </code></pre> <p>Press F5. Grab the form by the lower right-hand-edge and drag quickly to expand the form. The form expands rather jerkily due to the work being done in all the controls.</p> <p>I have an app with a form in it with some slow controls which has similarly become slow. The difference is that in my app, I get ugly black space appearing for a fraction of a second in the gaps as I drag out the form with my mouse. The window is not re-drawing properly. This ugly black space does not appear in the sample code above.</p> <p>Any ideas what might cause black space to appear when expanding a slow form?</p> <p>I have tried double-buffered but that makes no difference.</p> <p><strong>EDIT:</strong> I have dismantled the form down to its basics so that this can be reproduced. Start a new C# Windows Form application called WindowsFormsApplication_SampleFault. Paste the code below into the Form1.cs</p> <pre><code>using System; using System.Collections.Generic; using System.Drawing; using System.Reflection; using System.Windows.Forms; using System.Diagnostics; using System.Security.Principal; using System.Runtime.InteropServices; namespace WindowsFormsApplication_SampleFault { public partial class Form1 : Form { public Form1() { InitializeComponent(); for (int i = 1; i &lt;= 200; i++) { Button b = new Button(); b.Dock = DockStyle.Fill; this.Controls.Add(b); } } } } </code></pre> <p>then paste this into Form1.Designer.cs</p> <pre><code>namespace WindowsFormsApplication_SampleFault { partial class Form1 { /// &lt;summary&gt; /// Required designer variable. /// &lt;/summary&gt; private System.ComponentModel.IContainer components = null; /// &lt;summary&gt; /// Clean up any resources being used. /// &lt;/summary&gt; /// &lt;param name="disposing"&gt;true if managed resources should be disposed; otherwise, false.&lt;/param&gt; /// protected override void Dispose(bool disposing) { if (disposing &amp;&amp; (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// &lt;summary&gt; /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// &lt;/summary&gt; private void InitializeComponent() { this.statusStrip1 = new System.Windows.Forms.StatusStrip(); this.SuspendLayout(); // // statusStrip1 // this.statusStrip1.Location = new System.Drawing.Point(0, 472); this.statusStrip1.Name = "statusStrip1"; this.statusStrip1.Size = new System.Drawing.Size(756, 22); this.statusStrip1.TabIndex = 6; this.statusStrip1.Text = "statusStrip1"; // // frmOptions // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(756, 494); this.Controls.Add(this.statusStrip1); this.DoubleBuffered = true; this.ImeMode = System.Windows.Forms.ImeMode.Off; this.MinimizeBox = false; this.MinimumSize = new System.Drawing.Size(750, 500); this.Name = "frmOptions"; this.ShowIcon = false; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.StatusStrip statusStrip1; } } </code></pre> <p>Press F5 and attempt to drag-out the form. Note I am deliberately overloading the redraw mechanism to produce the black areas.</p> <p>I believe that something is wrong with the form designer code but I am not sure what. </p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload