jabrthel
asked on
Object reference not set to an instance of an object
For a property of type string, I use the following condition in an if statement....
value.Length > maxLength
When I go to run the program in visual studios 2008 express debugger, I receive the following error message "Object reference not set to an instance of an object". Why am I getting that error message? The property is of type string and the value keyword should reference the instance of that string, right? I tried also using the field corresponding to the property instead of value.Length, but that didn't work either. It just popped up with the same warning. How do I go about fixing this?
I've attached the relevant code below.
value.Length > maxLength
When I go to run the program in visual studios 2008 express debugger, I receive the following error message "Object reference not set to an instance of an object". Why am I getting that error message? The property is of type string and the value keyword should reference the instance of that string, right? I tried also using the field corresponding to the property instead of value.Length, but that didn't work either. It just popped up with the same warning. How do I go about fixing this?
I've attached the relevant code below.
public string CakeWriting
{
get
{
return this.cakeWriting;
}
set
{
int maxLength;
if (CakeSize == 8)
maxLength = 16;
else
maxLength = 40;
if (value.Length > maxLength)
{
MessageBox.Show("Too many letters for a " + CakeSize + " inch cake");
if (maxLength > this.cakeWriting.Length)
maxLength = this.cakeWriting.Length;
this.cakeWriting = cakeWriting.Substring(0, maxLength);
}
else
this.cakeWriting = value;
}
}
in which line you are getting the error...
try declaring a string and assigning the value to it.
and then use that as the condition
string sTmpString = value;
if (sTmpString.Length > maxLength) ....
seems kinda lame, but it should work.
and then use that as the condition
string sTmpString = value;
if (sTmpString.Length > maxLength) ....
seems kinda lame, but it should work.
try with the following:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
public string CakeWriting
{
get
{
return this.cakeWriting;
}
set
{
int maxLength;
if (CakeSize == 8)
maxLength = 16;
else
maxLength = 40;
if (value == null)
this.cakeWriting = "";
else if (value.Length > maxLength)
{
MessageBox.Show("Too many letters for a " + CakeSize + " inch cake");
if (maxLength > this.cakeWriting.Length)
maxLength = this.cakeWriting.Length;
this.cakeWriting = cakeWriting.Substring(0, maxLength);
}
else
this.cakeWriting = value;
}
}
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
xDJR1875:
I had tried that before, but it didn't work.
jaime_olivares:
Your solution worked, but why is value equal to null? There's a textbox control that is set to have some initial text "Happy Birthday"... when I create an instance of the class this CakeWriting property is in, I pass textbox.Text into the classes constructor... the constructor then sets the CakeWriting property equal to the parameter. So... value should never be null according to my understanding, but it appears to be null... any ideas on why this is?
I had tried that before, but it didn't work.
jaime_olivares:
Your solution worked, but why is value equal to null? There's a textbox control that is set to have some initial text "Happy Birthday"... when I create an instance of the class this CakeWriting property is in, I pass textbox.Text into the classes constructor... the constructor then sets the CakeWriting property equal to the parameter. So... value should never be null according to my understanding, but it appears to be null... any ideas on why this is?
can you try passing a a static text like "happy birthday" instead of the textbox.Text and see whether its taking the value...if it does...the the Textbox.text is not set
can you please share with us what are the values of CakeSize, the string that is being assigned to the property when you get the exception because then only we can replicate the exception otherwise the code in the propety looks ok
but you can try the code snipped suggested by jaime_olivares to be on the safer side
but you can try the code snipped suggested by jaime_olivares to be on the safer side
setting the value like this gives error
CakeWriting = SourceShipNameCombo.Text;
InitializeComponent(); //this is the class where all the controls are initialized by the designer
and setting it like this does not
InitializeComponent();
CakeWriting = SourceShipNameCombo.Text;
CakeWriting = SourceShipNameCombo.Text;
InitializeComponent(); //this is the class where all the controls are initialized by the designer
and setting it like this does not
InitializeComponent();
CakeWriting = SourceShipNameCombo.Text;
try to put a trap into your constructor, like:
public class yourClass
{
yourClass(string initValue)
{
if (initValue == null)
MessageBox.Show("Trying to initialize with a null value");
/// all your stuff here
}
}
if the messagebox does not appear, then the vaue is changing in another point different than constructor
Also, maybe you have a default constructor? if so, the initial value won't be set.
public class yourClass
{
yourClass(string initValue)
{
if (initValue == null)
MessageBox.Show("Trying to initialize with a null value");
/// all your stuff here
}
}
if the messagebox does not appear, then the vaue is changing in another point different than constructor
Also, maybe you have a default constructor? if so, the initial value won't be set.
@jaiganeshsrinivasan,
Please do not log with 2 users. It is extremely confusing
Please do not log with 2 users. It is extremely confusing
@jaiganeshsrinivasan,
Please do not log with 2 users. It is extremely confusing
---- i donot understand this...i ahve only one id...its jaiganeshsrinivasan...the other comments are by other users...
Please do not log with 2 users. It is extremely confusing
---- i donot understand this...i ahve only one id...its jaiganeshsrinivasan...the other comments are by other users...
oops sorry, my mistake.
Some corporate users enter to the same question with 2 users, I thought it was the case.
Some corporate users enter to the same question with 2 users, I thought it was the case.
no problemo...iam no corporate user...let stick to the question now :-)))
Wouldn't looking at the call stack when the exception happens tell you what is setting your value to null?
ASKER
jaiganeshsrinivasan:
I tried passing a static text "Happy Birthday" as the parameter instead of textbox.Text, but it gave me the same error
jaiganeshsrinivasan:
I have my code set up as such...
InitializeComponent();
CakeWriting = SourceShipNameCombo.Text;
jaime_olivares:
I tried putting the trap:
public class yourClass
{
yourClass(string initValue)
{
if (initValue == null)
MessageBox.Show("Trying to initialize with a null value");
/// all your stuff here
}
}
and when I ran the code, it popped up with the MessageBox
Tiggerito:
When I look at the call stack, it appears that it is passing the value "Happy Birthday" as the parameter, but the value is = null in the property according to the call stack.
I tried passing a static text "Happy Birthday" as the parameter instead of textbox.Text, but it gave me the same error
jaiganeshsrinivasan:
I have my code set up as such...
InitializeComponent();
CakeWriting = SourceShipNameCombo.Text;
jaime_olivares:
I tried putting the trap:
public class yourClass
{
yourClass(string initValue)
{
if (initValue == null)
MessageBox.Show("Trying to initialize with a null value");
/// all your stuff here
}
}
and when I ran the code, it popped up with the MessageBox
Tiggerito:
When I look at the call stack, it appears that it is passing the value "Happy Birthday" as the parameter, but the value is = null in the property according to the call stack.
well, then your problem is that somewhere in your code you are passing a null string to the constructor, I suggest to solve with this:
yourClass(string initValue)
{
if (initValue == null)
initValue = "";
/// all your stuff here
}
yourClass(string initValue)
{
if (initValue == null)
initValue = "";
/// all your stuff here
}
Something is setting CakeWriting to null, so at some point the "Happy Birthday" is getting lost.
Maybe placing a break point where you set "Happy Birthday" and stepping into things will give you a clue.
Maybe placing a break point where you set "Happy Birthday" and stepping into things will give you a clue.
ASKER
I've tried looking for where I could be setting it to null... but to no avail. Maybe I just need another set of eyes. Could someone take a look at this via the attached file?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Chapter_5_Project_1
{
class Party
{
const int CostOfFoodPerPerson = 25;
private bool fancyDecorations;
public decimal CostOfDecorations = 0;
public Party(int numberOfPeople, bool fancyDecorations)
{
this.fancyDecorations = fancyDecorations;
this.NumberOfPeople = numberOfPeople;
}
private int numberOfPeople;
public virtual int NumberOfPeople
{
get{ return numberOfPeople; }
set
{
numberOfPeople = value;
CalculateCostOfDecorations(fancyDecorations);
}
}
public void CalculateCostOfDecorations(bool fancy)
{
fancyDecorations = fancy;
if (fancy)
{
CostOfDecorations = (NumberOfPeople * 15.00M) + 50M;
}
else
{
CostOfDecorations = (NumberOfPeople + 7.50M) + 30M;
}
}
public virtual decimal CalculateCost()
{
//Each person cost $25 for food plus cost of beverages
decimal TotalCost = CostOfDecorations + (CostOfFoodPerPerson * NumberOfPeople);
if (NumberOfPeople > 12)
{
TotalCost += 100M;
}
return TotalCost;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Chapter_5_Project_1
{
class DinnerParty : Party
{
public decimal CostOfBeveragesPerPerson;
public DinnerParty(int numberOfPeople, bool healthyOption, bool fancyDecorations) : base(numberOfPeople, fancyDecorations)
{
SetHealthyOption(healthyOption);
CalculateCostOfDecorations(fancyDecorations);
}
public void SetHealthyOption(bool healthy)
{
if (healthy)
{
CostOfBeveragesPerPerson = 5M;
}
else
{
CostOfBeveragesPerPerson = 20M;
}
}
public decimal CalculateCost(bool healthy)
{
decimal totalCost;
totalCost = base.CalculateCost();
totalCost += (CostOfBeveragesPerPerson * base.NumberOfPeople);
if (healthy)
{
return totalCost * 0.95M;
}
else
{
return totalCost;
}
}
}
}
using System.Windows.Forms;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Chapter_5_Project_1
{
class BirthdayParty : Party
{
public int CakeSize;
public BirthdayParty(int numberOfPeople, bool fancyDecorations, string cakeWriting) : base(numberOfPeople, fancyDecorations)
{
CalculateCakeSize();
CalculateCostOfDecorations(fancyDecorations);
this.CakeWriting = cakeWriting;
}
public override int NumberOfPeople
{
get
{
return base.NumberOfPeople;
}
set
{
base.NumberOfPeople = value;
CalculateCakeSize();
this.CakeWriting = cakeWriting;
}
}
private string cakeWriting;
public string CakeWriting
{
get
{
return this.cakeWriting;
}
set
{
int maxLength;
if (CakeSize == 8)
maxLength = 16;
else
maxLength = 40;
if (value.Length > maxLength)
{
MessageBox.Show("Too many letters for a " + CakeSize + " inch cake");
if (maxLength > this.cakeWriting.Length)
maxLength = this.cakeWriting.Length;
this.cakeWriting = cakeWriting.Substring(0, maxLength);
}
else
this.cakeWriting = value;
}
}
private void CalculateCakeSize()
{
if (base.NumberOfPeople > 4)
{
CakeSize = 16;
}
else
{
CakeSize = 8;
}
}
public override decimal CalculateCost()
{
decimal totalCost;
totalCost = base.CalculateCost();
if (CakeSize > 8)
totalCost += 75M;
else
totalCost += 40M;
totalCost += cakeWriting.Length * 0.25M;
return totalCost;
}
}
}
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 Chapter_5_Project_1
{
public partial class Form1 : Form
{
DinnerParty dinnerParty;
BirthdayParty birthdayParty;
public Form1()
{
InitializeComponent();
dinnerParty = new DinnerParty((int)numberOfPeople.Value, healthyOption.Checked, fancyDecorations.Checked) ;
birthdayParty = new BirthdayParty((int)numberBirthday.Value, fancyBirthday.Checked, cakeWriting.Text);
DisplayDinnerPartyCost();
}
private void DisplayDinnerPartyCost()
{
decimal Cost = dinnerParty.CalculateCost(healthyOption.Checked);
costLabel.Text = Cost.ToString("c");
}
public void DisplayBirthdayPartyCost()
{
decimal Cost = birthdayParty.CalculateCost();
birthdayCost.Text = Cost.ToString("c");
}
private void numberOfPeople_ValueChanged(object sender, EventArgs e)
{
dinnerParty.NumberOfPeople = (int)numberOfPeople.Value;
DisplayDinnerPartyCost();
}
private void fancyDecorations_CheckedChanged(object sender, EventArgs e)
{
dinnerParty.CalculateCostOfDecorations(fancyDecorations.Checked);
DisplayDinnerPartyCost();
}
private void healthyOption_CheckedChanged(object sender, EventArgs e)
{
dinnerParty.SetHealthyOption(healthyOption.Checked);
DisplayDinnerPartyCost();
}
private void numberBirthday_ValueChanged(object sender, EventArgs e)
{
birthdayParty.NumberOfPeople = (int)numberBirthday.Value;
DisplayBirthdayPartyCost();
}
private void fancyBirthday_CheckedChanged(object sender, EventArgs e)
{
birthdayParty.CalculateCostOfDecorations(fancyBirthday.Checked);
DisplayBirthdayPartyCost();
}
private void cakeWriting_TextChanged(object sender, EventArgs e)
{
birthdayParty.CakeWriting = cakeWriting.Text;
DisplayBirthdayPartyCost();
}
}
}
namespace Chapter_5_Project_1
{
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.label1 = new System.Windows.Forms.Label();
this.numberOfPeople = new System.Windows.Forms.NumericUpDown();
this.fancyDecorations = new System.Windows.Forms.CheckBox();
this.healthyOption = new System.Windows.Forms.CheckBox();
this.label2 = new System.Windows.Forms.Label();
this.costLabel = new System.Windows.Forms.Label();
this.tabControl1 = new System.Windows.Forms.TabControl();
this.tabPage1 = new System.Windows.Forms.TabPage();
this.tabPage2 = new System.Windows.Forms.TabPage();
this.label3 = new System.Windows.Forms.Label();
this.numberBirthday = new System.Windows.Forms.NumericUpDown();
this.fancyBirthday = new System.Windows.Forms.CheckBox();
this.label4 = new System.Windows.Forms.Label();
this.cakeWriting = new System.Windows.Forms.TextBox();
this.label5 = new System.Windows.Forms.Label();
this.birthdayCost = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.numberOfPeople)).BeginInit();
this.tabControl1.SuspendLayout();
this.tabPage1.SuspendLayout();
this.tabPage2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.numberBirthday)).BeginInit();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(6, 7);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(92, 13);
this.label1.TabIndex = 0;
this.label1.Text = "Number of People";
//
// numberOfPeople
//
this.numberOfPeople.Location = new System.Drawing.Point(6, 24);
this.numberOfPeople.Name = "numberOfPeople";
this.numberOfPeople.Size = new System.Drawing.Size(92, 20);
this.numberOfPeople.TabIndex = 1;
this.numberOfPeople.ValueChanged += new System.EventHandler(this.numberOfPeople_ValueChanged);
//
// fancyDecorations
//
this.fancyDecorations.AutoSize = true;
this.fancyDecorations.Location = new System.Drawing.Point(6, 51);
this.fancyDecorations.Name = "fancyDecorations";
this.fancyDecorations.Size = new System.Drawing.Size(115, 17);
this.fancyDecorations.TabIndex = 2;
this.fancyDecorations.Text = "Fancy Decorations";
this.fancyDecorations.UseVisualStyleBackColor = true;
this.fancyDecorations.CheckedChanged += new System.EventHandler(this.fancyDecorations_CheckedChanged);
//
// healthyOption
//
this.healthyOption.AutoSize = true;
this.healthyOption.Location = new System.Drawing.Point(6, 75);
this.healthyOption.Name = "healthyOption";
this.healthyOption.Size = new System.Drawing.Size(96, 17);
this.healthyOption.TabIndex = 3;
this.healthyOption.Text = "Healthy Option";
this.healthyOption.UseVisualStyleBackColor = true;
this.healthyOption.CheckedChanged += new System.EventHandler(this.healthyOption_CheckedChanged);
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(6, 99);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(31, 13);
this.label2.TabIndex = 4;
this.label2.Text = "Cost:";
//
// costLabel
//
this.costLabel.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.costLabel.Location = new System.Drawing.Point(44, 99);
this.costLabel.Name = "costLabel";
this.costLabel.Size = new System.Drawing.Size(54, 13);
this.costLabel.TabIndex = 5;
this.costLabel.Text = "$";
//
// tabControl1
//
this.tabControl1.Controls.Add(this.tabPage1);
this.tabControl1.Controls.Add(this.tabPage2);
this.tabControl1.Location = new System.Drawing.Point(12, 12);
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(163, 158);
this.tabControl1.TabIndex = 6;
//
// tabPage1
//
this.tabPage1.Controls.Add(this.fancyDecorations);
this.tabPage1.Controls.Add(this.costLabel);
this.tabPage1.Controls.Add(this.label1);
this.tabPage1.Controls.Add(this.label2);
this.tabPage1.Controls.Add(this.numberOfPeople);
this.tabPage1.Controls.Add(this.healthyOption);
this.tabPage1.Location = new System.Drawing.Point(4, 22);
this.tabPage1.Name = "tabPage1";
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
this.tabPage1.Size = new System.Drawing.Size(155, 132);
this.tabPage1.TabIndex = 0;
this.tabPage1.Text = "Dinner Party";
this.tabPage1.UseVisualStyleBackColor = true;
//
// tabPage2
//
this.tabPage2.Controls.Add(this.birthdayCost);
this.tabPage2.Controls.Add(this.label5);
this.tabPage2.Controls.Add(this.cakeWriting);
this.tabPage2.Controls.Add(this.label4);
this.tabPage2.Controls.Add(this.fancyBirthday);
this.tabPage2.Controls.Add(this.numberBirthday);
this.tabPage2.Controls.Add(this.label3);
this.tabPage2.Location = new System.Drawing.Point(4, 22);
this.tabPage2.Name = "tabPage2";
this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
this.tabPage2.Size = new System.Drawing.Size(155, 132);
this.tabPage2.TabIndex = 1;
this.tabPage2.Text = "Birthday Party";
this.tabPage2.UseVisualStyleBackColor = true;
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(6, 5);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(94, 13);
this.label3.TabIndex = 0;
this.label3.Text = "Number Of People";
//
// numberBirthday
//
this.numberBirthday.Location = new System.Drawing.Point(7, 21);
this.numberBirthday.Name = "numberBirthday";
this.numberBirthday.Size = new System.Drawing.Size(120, 20);
this.numberBirthday.TabIndex = 1;
this.numberBirthday.ValueChanged += new System.EventHandler(this.numberBirthday_ValueChanged);
//
// fancyBirthday
//
this.fancyBirthday.AutoSize = true;
this.fancyBirthday.Location = new System.Drawing.Point(7, 48);
this.fancyBirthday.Name = "fancyBirthday";
this.fancyBirthday.Size = new System.Drawing.Size(115, 17);
this.fancyBirthday.TabIndex = 2;
this.fancyBirthday.Text = "Fancy Decorations";
this.fancyBirthday.UseVisualStyleBackColor = true;
this.fancyBirthday.CheckedChanged += new System.EventHandler(this.fancyBirthday_CheckedChanged);
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(6, 68);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(68, 13);
this.label4.TabIndex = 3;
this.label4.Text = "Cake Writing";
//
// cakeWriting
//
this.cakeWriting.Location = new System.Drawing.Point(7, 89);
this.cakeWriting.Name = "cakeWriting";
this.cakeWriting.Size = new System.Drawing.Size(142, 20);
this.cakeWriting.TabIndex = 4;
this.cakeWriting.Text = "Happy Birthday";
this.cakeWriting.TextChanged += new System.EventHandler(this.cakeWriting_TextChanged);
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(7, 116);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(31, 13);
this.label5.TabIndex = 5;
this.label5.Text = "Cost:";
//
// birthdayCost
//
this.birthdayCost.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.birthdayCost.Location = new System.Drawing.Point(46, 112);
this.birthdayCost.Name = "birthdayCost";
this.birthdayCost.Size = new System.Drawing.Size(81, 16);
this.birthdayCost.TabIndex = 6;
this.birthdayCost.Text = "$";
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(186, 181);
this.Controls.Add(this.tabControl1);
this.Name = "Form1";
this.Text = "Form1";
((System.ComponentModel.ISupportInitialize)(this.numberOfPeople)).EndInit();
this.tabControl1.ResumeLayout(false);
this.tabPage1.ResumeLayout(false);
this.tabPage1.PerformLayout();
this.tabPage2.ResumeLayout(false);
this.tabPage2.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.numberBirthday)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.NumericUpDown numberOfPeople;
private System.Windows.Forms.CheckBox fancyDecorations;
private System.Windows.Forms.CheckBox healthyOption;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label costLabel;
private System.Windows.Forms.TabControl tabControl1;
private System.Windows.Forms.TabPage tabPage1;
private System.Windows.Forms.TabPage tabPage2;
private System.Windows.Forms.Label birthdayCost;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.TextBox cakeWriting;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.CheckBox fancyBirthday;
private System.Windows.Forms.NumericUpDown numberBirthday;
private System.Windows.Forms.Label label3;
}
}
ASKER
I'm upping the points on this just because I'm being a pain...
In your NumberOfPeople setter you have this...
this.CakeWriting = cakeWriting;
It is setting the public property to its own priviate variable, which seems wrong.
You will be setting NumberOfPeople in your constructor which will trigger that line and set your CakeWriting to its current value of null...bang!
Note: I would change your naming convension so private variables have different names to parameters.
this.CakeWriting = cakeWriting;
It is setting the public property to its own priviate variable, which seems wrong.
You will be setting NumberOfPeople in your constructor which will trigger that line and set your CakeWriting to its current value of null...bang!
Note: I would change your naming convension so private variables have different names to parameters.
public override int NumberOfPeople
{
get
{
return base.NumberOfPeople;
}
set
{
base.NumberOfPeople = value;
CalculateCakeSize();
this.CakeWriting = cakeWriting; // HERE!
}
}
ASKER
it is setting the Public to the private... but it's meant to since the cakeSize depends on the number of people... so if it gets a new value for NumberOfPeople it needs to recalculcuate the cakeSize and then adjust the cakewriting length so that it fits on the cake. The way it does that is by making the property to reset the field. So that shouldn't be the problem, right?
If I declare private cakeWriting = "" in the BirthdayParty class... I can run the program. So I guess the problem I'm having now is not that there is a null value, but why is the initial value "Happy Birthday" not being passed through. My program will work after a modify the cake textbox, but it doesn't work with the initial value I've put in the cake textbox.
If I declare private cakeWriting = "" in the BirthdayParty class... I can run the program. So I guess the problem I'm having now is not that there is a null value, but why is the initial value "Happy Birthday" not being passed through. My program will work after a modify the cake textbox, but it doesn't work with the initial value I've put in the cake textbox.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
That was it... there was great confusion on my end since my dinnerParty class manipulates the form directly but my BirthdayParty class does not.
ASKER
Thanks, you both helped me in different ways. I'm splitting the points among Tiggerito and jaime_olivares.