programming interface controls
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 PresentationTRANSCRIPT
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);
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.
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(); } }