Why do I get a blank form when debugging in C #?

I just got rid of all my compiler errors. One of the problems was that I accidentally renamed the visual form instead of one of the individual text fields in my GUI. When I went to change what I messed up in the code, it seemed to work again. However, whenever I remove F5 for debugging, I get a smaller, blank window as my GUI, and not the one I developed in Visual Studio. Any suggestions?

Here is my main (Forms) class code:

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace beehive1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); Worker[] workers = new Worker[4]; workers[0] = new Worker(new string[] { "Nectar collector", "Honey Manufacturing" }); workers[1] = new Worker(new string[] { "Egg Care", "Baby Bee Tutoring" }); workers[2] = new Worker(new string[] { "Hive Maintenance", "Sting Patrol" }); workers[3] = new Worker(new string[] { "Nectar Collector", "Honey Manufacturing", "Egg Care", "Baby Bee Manufacturing", "Hive Maintenance", "Sting Patrol" }); queen = new Queen(workers); } Queen queen; private void assignJob_Click(object sender, EventArgs e) { if (queen.AssignWork(workerBeeJob.Text, (int)shifts.Value) == false) MessageBox.Show("No Workers Are Available To Do The Job " + workerBeeJob.Text + "", "The Queen Bee Says..."); else MessageBox.Show("The job " + workerBeeJob.Text + " will be done in " + shifts.Value + " shifts", "The Queen Bee Says..."); } private void button2_Click(object sender, EventArgs e) { report.Text = queen.WorkTheNextShift(); } } } 

EDIT: Designer Code:

 namespace beehive1 { partial class Form1 { /// <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.shiftLabel = new System.Windows.Forms.Label(); this.workerBeeJob = new System.Windows.Forms.ComboBox(); this.jobLabel = new System.Windows.Forms.Label(); this.shifts = new System.Windows.Forms.NumericUpDown(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.assignJob = new System.Windows.Forms.Button(); this.nextShift = new System.Windows.Forms.Button(); this.report = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.shifts)).BeginInit(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); // // shiftLabel // this.shiftLabel.AutoSize = true; this.shiftLabel.Location = new System.Drawing.Point(287, 26); this.shiftLabel.Name = "shiftLabel"; this.shiftLabel.Size = new System.Drawing.Size(33, 13); this.shiftLabel.TabIndex = 0; this.shiftLabel.Text = "Shifts"; // // workerBeeJob // this.workerBeeJob.FormattingEnabled = true; this.workerBeeJob.Location = new System.Drawing.Point(27, 42); this.workerBeeJob.Name = "workerBeeJob"; this.workerBeeJob.Size = new System.Drawing.Size(121, 21); this.workerBeeJob.TabIndex = 1; // // jobLabel // this.jobLabel.AutoSize = true; this.jobLabel.Location = new System.Drawing.Point(24, 26); this.jobLabel.Name = "jobLabel"; this.jobLabel.Size = new System.Drawing.Size(84, 13); this.jobLabel.TabIndex = 2; this.jobLabel.Text = "Worker Bee Job"; // // shifts // this.shifts.Location = new System.Drawing.Point(290, 42); this.shifts.Name = "shifts"; this.shifts.Size = new System.Drawing.Size(74, 20); this.shifts.TabIndex = 3; // // groupBox1 // this.groupBox1.Controls.Add(this.assignJob); this.groupBox1.Controls.Add(this.shiftLabel); this.groupBox1.Controls.Add(this.workerBeeJob); this.groupBox1.Controls.Add(this.jobLabel); this.groupBox1.Controls.Add(this.shifts); this.groupBox1.Location = new System.Drawing.Point(32, 12); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(384, 150); this.groupBox1.TabIndex = 4; this.groupBox1.TabStop = false; this.groupBox1.Text = "Worker Bee Job Assignments"; // // assignJob // this.assignJob.Location = new System.Drawing.Point(27, 70); this.assignJob.Name = "assignJob"; this.assignJob.Size = new System.Drawing.Size(121, 23); this.assignJob.TabIndex = 4; this.assignJob.Text = "Assign This Job"; this.assignJob.UseVisualStyleBackColor = true; this.assignJob.Click += new System.EventHandler(this.assignJob_Click); // // nextShift // this.nextShift.Location = new System.Drawing.Point(422, 38); this.nextShift.Name = "nextShift"; this.nextShift.Size = new System.Drawing.Size(79, 77); this.nextShift.TabIndex = 5; this.nextShift.Text = "Work The Next Shift"; this.nextShift.UseVisualStyleBackColor = true; this.nextShift.Click += new System.EventHandler(this.button2_Click); // // report // this.report.Location = new System.Drawing.Point(32, 199); this.report.Multiline = true; this.report.Name = "report"; this.report.Size = new System.Drawing.Size(384, 157); this.report.TabIndex = 6; // // Form // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(539, 398); this.Controls.Add(this.report); this.Controls.Add(this.nextShift); this.Controls.Add(this.groupBox1); this.Name = "Form"; this.Text = "Beehive Management System"; ((System.ComponentModel.ISupportInitialize)(this.shifts)).EndInit(); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.Label shiftLabel; private System.Windows.Forms.ComboBox workerBeeJob; private System.Windows.Forms.Label jobLabel; private System.Windows.Forms.NumericUpDown shifts; private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.Button assignJob; private System.Windows.Forms.Button nextShift; private System.Windows.Forms.TextBox report; } } 

Maybe the application is no longer associated with this Form class? I tried Clean Build and ReBuild, but it didn't seem to work.

+4
source share
3 answers

An empty form means that InitializeComponent() not activated or this.Controls.Add not adding controls properly. try debugging step by step and activating all CLR exceptions to make sure that there are no exceptions in the constructor. show us the design of the form.

Edit: alt text

this should be verified not verified, as shown above. now run the form in debug mode and see if there are any exceptions. add what you call your form:

 Form1 newForm=new Form1(); 
+8
source

Check if the form instance ( new Form() ) is constructed instead of Form1() in the main method.

+1
source

Sometimes a visual studio gets buggies (for example, when renaming your project / form / catalog). I struggled with this myself until I discovered that:

 this.Controls.Add(*form object name*); 

where the file Form1.Designer.cs is missing. These are โ€œauto-generatedโ€ lines, but, apparently, auto generation does not always go well.

I wrote a small quick and dirty python script that tries to fix this. Place the script in a new directory with a copy of the xxx.Designer.cs file and run it. It will probably generate the xxx.Designer.cs.fix file. Saves a lot of manual copying.

 import os #get current dir from which the script runs (should also contain the xxx.Designer.cs file) daDir = os.path.dirname(os.path.abspath(__file__)) #the file extension we're looking for ext = ".Designer.cs" #list of all files in the dir from which the script runs FileList = os.listdir(daDir) FileToOpen = "" ObjNameStr = "" OriginalFileName = "SORRY, AUTO FIXING FAILED" #the file to open (any first match for .Designer.cs) for str in FileList: if (str.endswith(ext)): OriginalFileName = str FileToOpen = daDir + "\\" + str break if FileToOpen != "": print("File found: " + FileToOpen) fileToFix = open(FileToOpen, 'r') FormObjStrList = [] for str in fileToFix: # remove whitepaces/leading tabs str = str.lstrip() # get first part of string: "this.formobjectName" str = str.partition(' ')[0] if str.startswith("this.") and (str.count('.') == 1): ObjNameStr = str #add Form object to list if unique: if (ObjNameStr not in FormObjStrList) and ("this.components" not in ObjNameStr): #No more objects after SuspendLayout property if ("this.SuspendLayout" in ObjNameStr): break else: FormObjStrList.append("this.Controls.Add(" + ObjNameStr + ");") # copy original file to a stringlist that will be the fixed file FixedFile = fileToFix.read().splitlines() # look op the location to copy the new string list into i = 0 for str in FixedFile: if ("this.AutoScaleMode" in str): break i += 1 i += 1 # Create the new xxx.Designer.cs fixed file by adding the extra generated lines for str in FormObjStrList: FixedFile.insert(i, str) else: print("No fixable file found. ") print(FormObjStrList) # Save the new fixed file (manually check/correct this) FixedFileSave = open(OriginalFileName + ".fix", 'w') FixedFileSave.write("\n".join(FixedFile)) FixedFileSave.close() print("New fixed file saved as: " + OriginalFileName + ".fix") print("Please manually check if the generated file is correct for your project.") 
0
source

All Articles