views:

73

answers:

2

i just got rid of all my compiler errors. One of the problems was that I accidentally renamed the visual form itself instead of one of the individual text boxes on my GUI. When I went to change what I had messed up in the code, it seemed to be working again. However, whenever I hit F5 to debug, I get a smaller, blank window as my GUI, and not the one that I had designed in Visual Studio. Any suggestions?

Here's 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 connected to that Form class? I've tried a Clean Build and a ReBuild, but it hasn't seemed to work.

+1  A: 

Check if you construct a Form (new Form()) instance instead of Form1() in your Main method.

in the designer code you mean?
classicrock985
No, in method where you create GUI and an instance of the form; there should be line like Application.Run(new Form1());
that didn't work.
classicrock985
please explain? I wish it just worked like it used to.
classicrock985
Ahhh, the leaky abstraction. It's all great until it's not, and then you can't fix it because you don't have a clue how it works.
Ed Swangren
+1  A: 

Hi, Blank form means that InitializeComponent() isn't acivated or this.Controls.Add doesn't add the controls properly. try to debug step by step and activate all CLR exception to make sure no exception is occuring in the constructor. show us the construction of the form also.

Edit: alt text

this should be checked not checked of as seen above. now run your form in debug mode and see if any excecptions occur. please add how you call your form meaning:

Form1 newForm=new Form1();
how do I show you the construction of the form? I have displayed the form's class as well as the designer class. In the form class I call out the InitializeComponent(); function
classicrock985
Also, there are no Compiler Errors. it used to run fine.
classicrock985
Hi, show the instance of the form where you create it.(maybe a call to the wrong form). i meant not compiler errors but run time exceptions. go to Debug->Execptions-> check CLR exceptions.
I still don't understand what you're saying. This is my main class. I'm not calling it from any other class. This should be my form. I already had CLR checked off.
classicrock985
see edit for more details
You probably are calling it from another place even though you don't realize it. There is a file called Program.cs. This is actually where `Main` is. There should be a line there similar to `Application.Run(new Form1())` in Main. Do you see this? If you see `Application.Run(new Form())` (Note missing 1), this may be where you are running into problems.
Daniel Joseph
thanks!! that did it!
classicrock985