Programming Interface Controls

37
Programming Interface Controls ISYS 350

description

Programming Interface Controls. ISYS 350. User Interface Controls. Form MessageBox Common Controls: Button, TextBox, MaskedTextBox, List Box, Option Button, Check Box, CheckedListBox, numericUpDown Container controls: GroupBox, etc. Others: Timer ToolTip Components. - PowerPoint PPT Presentation

Transcript of Programming Interface Controls

Programming Interface Controls

ISYS 350

User Interface Controls• Form• MessageBox• Common Controls:

– Button, TextBox, MaskedTextBox, List Box, Option Button, Check Box, CheckedListBox, numericUpDown

• Container controls:– GroupBox, etc.

• Others:– Timer– ToolTip– Components

Working with Form

• To close a form:– this.Close();

• Events:– Load, Activated, DeActivate, Closing, Closed

Form Closing Eventprivate void Form2_FormClosing(object sender, FormClosingEventArgs e) { if (MessageBox.Show("Are you sure?", "Warning", MessageBoxButtons.YesNo) == DialogResult.Yes) { e.Cancel = false; } else { e.Cancel = true; } }

Note: sender – object that triggers the event; e – event argument that provides actions to handle the event.

MessageBoxMessageBox.Show(message)

MessageBox.Show(message, Caption)

MessageBox.Show(message, Caption, Buttons)

Note:

1. In each format, arguments are positional and required.

2. This object returns a DialogResult data type. Possible values for a DialogResult data type are: Abort, Cancel, Ignore, No, None, OK, ReTry, and Yes. To test the return value:

Dim ReturnVal as DialogResult

ReturnVal=MessageBox(“hello”, …..)

If ReturnVal=DialogResult.OK…

Text Box

• Useful properties– BackColor, BorderStyle– ReadOnly– Enable– Visible– Password Character– Multiline– ScrollBar– Text

• Useful events– TextChanged: default event– Validating – useful for validating data entered in the box

Input Validation• Numbers are checked to ensure they are:

– Within a range of possible values– Reasonableness– Not causing problems such as division by 0.– Containing only digits

• IsNumeric

• Texts are checked to ensure correct format.– Phone #, SSN.

• Required field• Textbox:

– Set CauseValidation property to true.– Use the Validating event:

• Triggered just before the focus shifts to other control.

Data Entered in Textbox1 Must Be between 10 and 30

private void textBox1_Validating(object sender, CancelEventArgs e) { double enteredData; enteredData = double.Parse(textBox1.Text); if (enteredData<10 || enteredData>30) { MessageBox.Show("Pls enter a number between 10 and 30"); e.Cancel=true; } }

Testing for digits onlyThis example uses the Double.Parse method trying to convert the data entered in the box to double. If fail then it is not numeric.

private void textBox1_Validating(object sender, CancelEventArgs e) { try { double.Parse(textBox1.Text); e.Cancel = false; } catch { e.Cancel = true; MessageBox.Show("Enter digits only"); } }

Note: VB has an IsNumeric function and Excel has an ISNumber function.

String Methods

• ToUpper, ToLower• Length – Number of characters• TrimStart, TrimEnd, Trim• Substring(Start), Substring(Start, length)• IndexOf(SearchString), IndexOf(SearchString, Start)

– 0 based index– Case-sensitive

• eName=“David”• Position=eName.IndexOf(“d”)

– Return –1 if the searchString is not found.

• Note: Text property of a Textbox has all the string methods.– Ex. TextBox1.Text.Substring(0,2)

Extract First Name and Last Name from Full Name in this format: FirstName LastName

int indexSpace;string firstName, lastName ;indexSpace = textBox2.Text.IndexOf(" ");firstName = textBox2.Text.Substring(0, indexSpace);lastName = textBox2.Text.Substring(indexSpace + 1);MessageBox.Show(firstName);MessageBox.Show(lastName);

Group Box

• It is a container control.

• Controls in a Group Box should move with the box.

Radio Button

• Radio buttons must be grouped together inside a container such as a GroupBox or a form.

• When the user selects an option all other options in the same group are deselected.

• Properties:– Checked: True/False.

• Default button: Set the Checked property to true at the design time.

• Events: – CheckedChanged

Example

private void button1_Click(object sender, EventArgs e) { if (radioButton1.Checked) MessageBox.Show("Button 1 checked"); else if (radioButton2.Checked) MessageBox.Show("Button 2 checked"); else MessageBox.Show("Button 3 checked"); }

Tuition Rules

For undergraduate: If total units <= 12, then tuition = 1200; Otherwise, tuition = 1200 + 200 per

additional unitFor graduate:

If total units <= 9, then tuition = 1500; Otherwise, tuition = 1500 + 400 per

additional unit

Nested Decision Structures• You can create nested decision structures to test more than one condition.

• Nested means “one inside another”

• In C#, a generic format is:if (expression){ if (expression) { statements; } else { statements; }}else { statements}

private void button1_Click(object sender, EventArgs e) { double units, tuition; units=double.Parse(textBox1.Text); if (radioButton1.Checked) { if (units <= 12) tuition = 1200; else tuition = 1200 + 200 * (units - 12); } else { if (units <= 9) tuition = 1500; else tuition = 1500 + 400 * (units - 9); } }

Check Box

• Check boxes do not belong to a group even when they are grouped in a Group Box.

• Checked property and checkedChanged event

Which CheckBoxes are cheked?

private void button1_Click(object sender, EventArgs e) { string box=""; if (checkBox1.Checked) box += "box1"; if (checkBox2.Checked) box += "box2"; if (checkBox3.Checked) box += "box3"; MessageBox.Show(box); }

Note: Cannot use if-else-if

Rules for Discount

If total sales is greater than 1000, then the customer will get a 10% discount ; otherwise, the customer will get a 5% discount.

If the customer is a club member, then applies 20% off the discounted charges.

private void button1_Click(object sender, EventArgs e) { try { double totalSales, discountRate, netPay; string myMsg; totalSales = double.Parse(textBox1.Text); if (totalSales <= 1000) discountRate = .05; else discountRate = .1; netPay = totalSales * (1 - discountRate); if (checkBox1.Checked) netPay = netPay * (1 - .20); textBox2.Text = netPay.ToString("C"); } catch (Exception ex) { MessageBox.Show(ex.Message); } }

List Box

• Useful properties– Items: The items in the listBox. It is a collection

strcture. Items can be entered at the design time or entered in code.

• 0-based index– SelectionMode: one or multi selection– SelectedItem– SelectedIndex

• Methods– Add– Clear

• Event: SelectedIndexChange

ListBox Items Collections• Methods:

– ADD: ListBox1.Items.Add("Apple")

– Item: Retrieve an object from Items• ListBox1.Items.Item(Index) or ListBox1.Items(Index)

• 0-based index

– Insert: ListBox.Items.Insert(Index, item)

– Remove: Delete an object with a position index or key.• ListBox.Items.Remove(Item)

• ListBox.Items.RemoveAt(Index)

– Clear: ListBox.Items.Clear()

– Count: Return the number of objects in a collection.• ListBox.Items.Count

Adding Items Using Code

private void Form11_Load(object sender, EventArgs e) { listBox1.Items.Add("Apple"); listBox1.Items.Add("Orange"); listBox1.Items.Add("Banana"); listBox1.Items.Add("Strawberry"); listBox1.Items.Add("Kiwi"); }

private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { MessageBox.Show(listBox1.SelectedItem.ToString()); MessageBox.Show(listBox1.SelectedIndex.ToString()); }

Working with Radiobuttons, Listbox• Create a form with 2 radiobuttons. When radiobutton1

is selected, populate a listbox with fruit names.; otherwise populate the listbox with vegetable names. Then, dsplay the fruit or vegetable’s name in a textbox when user select an item from the listbox.

Create a Loan Payment Form

The switch Statement• The switch statement lets the value of a variable or an

expression determine which path of execution the program will take

• It is a multiple-alternative decision structure• It can be used as an alternative to an if-else-if

statement that tests the same variable or expression for several different values

Generic Format of switch Statementswtich (testExpression)

{

case value_1:

statements;

break;

case value_2:

statements;

break;

case value_n:

statements;

break;

default:

statements;

break;

}

• The testExpression is a variable or an expression that given an integer, string, or bool value. Yet, it cannot be a floating-point or decimal value.

• Each case is an individual subsection containing one or more statements, followed by a break statement

• The default section is optional and is designed for a situation that the testExpression will not match with any of the case

Sample switch Statementswitch (month)

{

case 1:

MessageBox.Show(“January”);

break;

case 2:

MessageBox.Show(“February”);

break;

case 3:

MessageBox.Show(“March”);

break;

default:

MessageBox.Show(“Error: Invalid month”);

break;

}

month

Display “January”

Display “February”

Display “March”

Display “Error: Invalid month”

Using VB.Net’s PMT Function

• Add a reference to Microsoft Visual Baisc– From the Solution Explorer, right-click the

References node, then click Add Reference– From the .Net tab, select Microsoft Visual

Baisc– Add this code to the form:

• using Microsoft.VisualBasic;

private void button1_Click(object sender, EventArgs e) { double loan, term, rate, payment; loan = Double.Parse(textBox1.Text); if (radioButton1.Checked) { term = 15; } else { term = 30; } switch (listBox1.SelectedIndex) { case 0: rate=.05; break; case 1: rate=.06; break; case 2: rate = .07; break; case 3: rate = .08; break; case 4: rate = .09; break; default: rate = 0.05; break; } payment = Financial.Pmt(rate / 12, term * 12, -loan); textBox2.Text = payment.ToString(); }

How to Use VB’s IsNumeric Function

• Add a reference to Microsoft VisualBasic • Then, add this code to the form:

– using Microsoft.VisualBasic;

• Microsoft.VisualBasic.Information class contains the IsNumeric function

if (! Information.IsNumeric(textBox1.Text)) { e.Cancel = true; MessageBox.Show("Enter digits only"); } else { e.Cancel=false; }

Switch section’s ends with a break statementExample:Enter a digit and test its value

int myInt = int.Parse(textBox1.Text); switch (myInt) { case 0: case 1: case 2: MessageBox.Show(" 0,1, or 2"); break; case 3: case 4: case 5: MessageBox.Show(" 3,4, or 5"); break; default: MessageBox.Show("between 6 and 9"); break; }

ComboBox• Allows the user to type text directly into the

combo box.• Use the Text property to get entered item:

– ComboBox1.Text– The index for an entered item is –1.

• Search an item in the list: ComboBox1.Items.IndexOf(“search text”)– Found: return the index of the search text.– Not found: return –1.

• How to add an entered item to the list?

Timer• Properties:

• Enabled -- must set to True.• Interval

• Tick Event

private void timer1_Tick(object sender, EventArgs e) { textBox1.Text = System.DateTime.Now.ToString(); }

Use a Timer to Close a Form

int counter = 0; private void timer1_Tick(object sender, EventArgs e) { counter+=1;

if (counter > 50) { this.Close(); } }

Close a form after 10 seconds:Set interval to 1000

int counter = 0; private void timer1_Tick(object sender, EventArgs e) { label2.Text= System.DateTime.Now.ToString(); ++counter; if (counter > 10) this.Close(); }