All controls on a form are invisible
I've run into a bizarre problem. Given only this code (that I've cut down to the bare essentials), the form will appear but all controls on it are invisible, even though their individual Visible
properties are true:
static 开发者_StackOverflow社区class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new WaveformWindow());
}
}
// ...
public partial class WaveformWindow : Form
{
public WaveformWindow()
{
InitializeComponent();
}
}
// ...
partial class WaveformWindow
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(27, 27);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(35, 13);
this.label1.TabIndex = 4;
this.label1.Text = "label1";
//
// WaveformWindow
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(398, 373);
this.Name = "WaveformWindow";
this.ShowInTaskbar = false;
this.Text = "WaveformWindow";
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Label label1;
}
Comparing between working and broken versions of the non-stripped program, the only file that changed is the form designer file.
Add the controls to the form to make them visible. See... this.Controls.Add(this.label1); below
//
// WaveformWindow
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(398, 373);
this.Name = "WaveformWindow";
this.ShowInTaskbar = false;
this.Text = "WaveformWindow";
**this.Controls.Add(this.label1);**
this.ResumeLayout(false);
Windows forms generates the code to add all the controls to forms automatically. So whenever u face such problem, delete the old control and again drag and drop it. It must be then visible. (Edit for understanding the issue)
精彩评论