I'm really new to programming. C# is the first class I've taken and I'm stuck on this a project. We had to create a program that will calculate the cost of workshop after selecting a workshop radiobutton and a location radio button. I've got everything working the way it's supposed to except for one thing.
Let's say you select a workshop, but you don't select a location. I have it to where a MessageBox
will show up saying to "select a location," but how do I stop the program from calculating if this happens? As of now, it will just calculate and give the location amount 0. I need it to not calculate at all.
public partial class frmWorkshopSelector : Form
{
public frmWorkshopSelector()
{
InitializeComponent();
}
private void btnExit_Click(object sender, EventArgs e)
{
this.Close(); //When clicking the exit button, the program will close
}
private void btncalc_Click(object sender, EventArgs e)
{
int wsregistration = 0;
int lcost = 0;
const decimal DAYS = 3;
//For the following if statements, depending on what workshop and location is selected,
//their correstponding registration and lodging fees will be displayed
{
if (rbtHandlingStress.Checked == true)
{
wsregistration = 1000;
}
else if (rbtSupervisionSkills.Checked == true)
{
wsregistration = 1500;
}
else if (rbtTimeManagement.Checked == true)
{
wsregistration = 800;
}
else
MessageBox.Show("Please Select a Workshop");
lblTotalCost.Text = "";
lblLodgingCost.Text = "";
lblRegistrationCost.Text = "";
}
{
if (rbtAustin.Checked == true)
{
lcost = 150;
}
else if (rbtChicago.Checked == true)
{
lcost = 225;
}
else if (rbtDallas.Checked == true)
{
lcost = 175;
}
else
{
MessageBox.Show("Please Select a Location");
lblRegistrationCost.Text = " ";
lblTotalCost.Text = " ";
lblLodgingCost.Text = " ";
}
}
lblRegistrationCost.Text = wsregistration.ToString("C");
lblLodgingCost.Text = lcost.ToString("C");
lblTotalCost.Text = (wsregistration + (lcost * DAYS)).ToString("C");
}
private void btnReset_Click(object sender, EventArgs e)
{
//unchecks all radio buttons as well as clears out the previous calculations
lblRegistrationCost.Text = "";
lblLodgingCost.Text = "";
lblTotalCost.Text = "";
rbtHandlingStress.Checked = false;
rbtSupervisionSkills.Checked = false;
rbtTimeManagement.Checked = false;
rbtAustin.Checked = false;
rbtChicago.Checked = false;
rbtDallas.Checked = false;
}
}
You have to exit from the method. Added return statement in else block.
private void btncalc_Click(object sender, EventArgs e)
{
int wsregistration = 0;
int lcost = 0;
const decimal DAYS = 3;
//For the following if statements, depending on what workshop and location is selected,
//their correstponding registration and lodging fees will be displayed
if (rbtHandlingStress.Checked == true)
{
wsregistration = 1000;
}
else if (rbtSupervisionSkills.Checked == true)
{
wsregistration = 1500;
}
else if (rbtTimeManagement.Checked == true)
{
wsregistration = 800;
}
else
{
lblTotalCost.Text = "";
lblLodgingCost.Text = "";
lblRegistrationCost.Text = "";
MessageBox.Show("Please Select a Workshop");
return;
}
if (rbtAustin.Checked == true)
{
lcost = 150;
}
else if (rbtChicago.Checked == true)
{
lcost = 225;
}
else if (rbtDallas.Checked == true)
{
lcost = 175;
}
else
{
lblRegistrationCost.Text = " ";
lblTotalCost.Text = " ";
lblLodgingCost.Text = " ";
MessageBox.Show("Please Select a Location");
return;
}
lblRegistrationCost.Text = wsregistration.ToString("C");
lblLodgingCost.Text = lcost.ToString("C");
lblTotalCost.Text = (wsregistration + (lcost * DAYS)).ToString("C");
}
writing a "return" anywhere within the function exits that function, maybe after you show the message box to enter location, you type
return;
and this should do the job.
Just Add return statement in your code after showing the message box like below
public partial class frmWorkshopSelector : Form
{
public frmWorkshopSelector()
{
InitializeComponent();
}
private void btnExit_Click(object sender, EventArgs e)
{
this.Close(); //When clicking the exit button, the program will close
}
private void btncalc_Click(object sender, EventArgs e)
{
int wsregistration = 0;
int lcost = 0;
const decimal DAYS = 3;
//For the following if statements, depending on what workshop and location is selected,
//their correstponding registration and lodging fees will be displayed
{
if (rbtHandlingStress.Checked == true)
{
wsregistration = 1000;
}
else if (rbtSupervisionSkills.Checked == true)
{
wsregistration = 1500;
}
else if (rbtTimeManagement.Checked == true)
{
wsregistration = 800;
}
else
MessageBox.Show("Please Select a Workshop");
lblTotalCost.Text = "";
lblLodgingCost.Text = "";
lblRegistrationCost.Text = "";
return;
}
{
if (rbtAustin.Checked == true)
{
lcost = 150;
}
else if (rbtChicago.Checked == true)
{
lcost = 225;
}
else if (rbtDallas.Checked == true)
{
lcost = 175;
}
else
{
MessageBox.Show("Please Select a Location");
lblRegistrationCost.Text = " ";
lblTotalCost.Text = " ";
lblLodgingCost.Text = " ";
return;
}
}
lblRegistrationCost.Text = wsregistration.ToString("C");
lblLodgingCost.Text = lcost.ToString("C");
lblTotalCost.Text = (wsregistration + (lcost * DAYS)).ToString("C");
}
private void btnReset_Click(object sender, EventArgs e)
{ //uncheks all radio buttons as well as clears out the previous calculations
lblRegistrationCost.Text = "";
lblLodgingCost.Text = "";
lblTotalCost.Text = "";
rbtHandlingStress.Checked = false;
rbtSupervisionSkills.Checked = false;
rbtTimeManagement.Checked = false;
rbtAustin.Checked = false;
rbtChicago.Checked = false;
rbtDallas.Checked = false;
}
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.