Title: Programming Interface Controls
1Programming Interface Controls
2User 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
3Text 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
4Input 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.
5Data 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
(enteredDatalt10 enteredDatagt30)
MessageBox.Show("Pls enter a
number between 10 and 30")
e.Canceltrue
6Testing for digits only
This 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.Te
xt) e.Cancel false
catch
e.Cancel true
MessageBox.Show("Enter digits only")
Note VB has an IsNumeric function and Excel has
an ISNumber function.
7Testing for Blank (required field)
private void textBox1_Validating(object sender,
CancelEventArgs e) string
str textBox1.Text bool blank
false if (str "") //Method 1
blank true
if (string.Equals(str, ""))
//Method 2 blank
true if
(string.IsNullOrEmpty(str)) //Method 3
blank true
if (blank)
MessageBox.Show("Textbox cannot be blank")
e.Cancel true
8Working with Form
- To close a form
- this.Close()
- Events
- Load, Activated, DeActivate, Closing, Closed
9Form Closing Event
private 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.
10MessageBox
MessageBox.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 ReturnValMessageBox(hello,
..) If ReturnValDialogResult.OK
11Group Box
- It is a container control.
- Controls in a Group Box should move with the box.
12Radio 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
13Example
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")
14Tuition Rules
For undergraduate If total units lt 12, then
tuition 1200 Otherwise, tuition 1200 200
per additional unitFor graduate If total
units lt 9, then tuition 1500 Otherwise,
tuition 1500 400 per additional unit
15Nested 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
16private void button1_Click(object sender,
EventArgs e) double units,
tuition unitsdouble.Parse(textBox1.T
ext) if (radioButton1.Checked)
if (units lt 12)
tuition 1200 else
tuition 1200 200 (units -
12) else
if (units lt 9)
tuition 1500 else
tuition 1500 400 (units - 9)
17Check Box
- Check boxes do not belong to a group even when
they are grouped in a Group Box. - Checked property and checkedChanged event
18Which 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
19Rules 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.
20private void button1_Click(object sender,
EventArgs e) try
double totalSales,
discountRate, netPay string
myMsg totalSales
double.Parse(textBox1.Text) if
(totalSales lt 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)
21Rules for Discount
- Total saleslt 200
- Discount 3
- 200 ltTotal saleslt1000
- Discount 5
- Total sales gt1000
- Discount10
if (totalSales lt 200)
discountRate .03 elseif (totalSales lt 1000
discountRate
.05 else discountRate .1
22List 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
23ListBox 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
24Creating Listbox at the Design View
- 1. Drag and drop a Listbox control to the design
view. - 2. From the Listbox Property window, select the
Listbox Items property and click the Collection
Editor button to open the Collection Editor. - 3. Enter items.
25Adding 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.SelectedInde
x.ToString())
26Working 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
vegetables name in a textbox when user select an
item from the listbox.
27Create a Loan Payment Form
28The 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
29Generic Format of switch Statement
- swtich (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
30Sample switch Statement
- switch (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
31Using VB.Nets 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
32 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()
33How to Use VBs 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.Cancelfalse
34Switch sections ends with a break
statementExampleEnter 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
35ComboBox
- 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.IndexO
f(search text) - Found return the index of the search text.
- Not found return 1.
- How to add an entered item to the list?
36Timer
- Properties
- Enabled -- must set to True.
- Interval
- Tick Event
private void timer1_Tick(object sender,
EventArgs e) textBox1.Text
System.DateTime.Now.ToString()
37Use a Timer to Close a Form
int counter 0 private void
timer1_Tick(object sender, EventArgs e)
counter1 if (counter gt 50)
this.Close()
38Close a form after 10 secondsSet interval to
1000
int counter 0 private void
timer1_Tick(object sender, EventArgs e)
label2.Text System.DateTime.Now.ToSt
ring() counter if
(counter gt 10) this.Close()