**Note: I'm doing these in Visual Studio Express 2013
The formula for completing this task
This formula is pretty straight-forward and translate to: [ maxNum * (maxNum)]/2 = [(maxNum)2]/2 + maxNum/2
Requirements for this program- A TextBox (txtMaxNum)
- A label (lblMaxNum)
- Another label (lblSum)
- A button (btnSum)
- (everything else is optional)
Here is the code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace CS_Playground
{
public partial class Form1 : Form
{
private int maxNum;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
resetTextBox(txtMaxNum, "Insert the Maximum Number");
lblMaxNum.Text = "(Nothing yet)";
}
private void txtMaxNum_Enter(object sender, EventArgs e)
{
//Make sure the textbox is empty and ready for typing
insertTextMode(txtMaxNum);
lblMaxNum.Text = "Typing...";
}
/*
* Reset the textbox so that there is a default value already
* inside then clears the textbox
*/
public void resetTextBox(TextBox textbox, string defaultText)
{
textbox.Clear();//Makes sure there is nothing in there
textbox.ForeColor = Color.Gray; //Gives the font a grayish color
textbox.Text = defaultText;
}
/*
* Changes the font color for text insertion
*/
public void insertTextMode(TextBox t)
{
t.Clear();
t.ForeColor = Color.Black;
t.BackColor = Color.White;
}
public int sum(int max){
int sum = (max * (1 + max) / 2); //Algorithm for getting the sum of the
//numbers 1 + 2 + 3 + ... + n
return sum;
}
public void warning(string text) {
System.Windows.Forms.MessageBox.Show(text, "Error", MessageBoxButtons.OK ,MessageBoxIcon.Error);
//This is a long statement
}
private void btnSum_Click(object sender, EventArgs e)
{
/*
* Even if you don't enter anything in the textbox, it will still count the length
* of the default text which is what we want to prevent.
*/
if (txtMaxNum.Text.Length > 0 && txtMaxNum.Text != "Insert the Maximum Number")
{
//Now we need to make sure that a we are working with integers
if(txtMaxNum.Text.All(char.IsDigit)){
lblMaxNum.Text = txtMaxNum.Text;
maxNum = Int32.Parse(txtMaxNum.Text);
lblSum.Text = "1 + 2 + 3 + ....... + " + maxNum + " is " + sum(maxNum);
resetTextBox(txtMaxNum, "Want to do another one?");
}else{
//If someone decides to add some letters anyway they will be stopped by this error message
warning("Why are you goofing around? You know we're only working with integers");
lblMaxNum.Text = "Try again";
}
}
else{
txtMaxNum.BackColor = Color.Red;
txtMaxNum.ForeColor = Color.White;
txtMaxNum.Text = "Please enter a Number";
lblMaxNum.Text = "Try again";
warning("Sum calculations cannot take place with an empty textbox. Please specify a maximum number");
if (txtMaxNum.Focused == true) {
insertTextMode(txtMaxNum);
}
}
}
}
}
Here are the images that I have (I should have a demonstration video up and going in the next couple of days).





