Title: Programming Interface Controls with VB.Net
1Programming Interface Controls with VB.Net
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
3Form
- Form is defined as a class.
- Methods
- Show, ShowDialog Open a form
- Activate, Focus Make an opened form get focus
- Hide, Close
- Ex.
- Me.Hide, Me.Close
- Note Closing a form is equivalent to delete a
form. - Events
- Load, Activated, DeActivate, Closing, Closed
4Multiple Forms
Two forms Form1, Form2 To Open Form2 from
Form1 Standard but troublesome way to open a
form Must create an instance of the form class
by using the keyword New to access the form.
Dim f2 As New Form2() f2.Show() Open
Form2 as a Modal form f2.ShowDialog() .
5- Modeless form Other forms can receive input
focus while this form remains active. - FormName.Show()
- Modal form No other form can receive focus while
this form remains active. - FormName.ShowDialog()
- Demo Problem with the Show method
6Using the Default Instances of Forms to Open a
Form
- formName.Show, formName.ShowDialog
- Always bring up the same underlying default
instance of the form. - Example Form2.ShowDialog
7Control StartUp Form
- Click
- Project/Properties/Application/StartUp Form
- Then select the form
8SharingVariables Among Forms
- Define these variables with project-level scope
in a module using the Public keyword - Module Module1
- Public testVar As Integer
- End Module
- Note Use Project/Add Module to add a module.
9Modules
- A file contains code such as
- Variable declarations
- Procedures and functions
- Variables and procedures used by more than one
form should store in a module. - Global variables Public
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
11Form Closing Event Example
Private Sub Form10_FormClosing(ByVal sender As
Object, ByVal e As System.Windows.Forms.FormClosin
gEventArgs) Handles Me.FormClosing If
MessageBox.Show("Are you sure?", "Warning",
MessageBoxButtons.YesNo) DialogResult.Yes Then
e.Cancel False Else
e.Cancel True End If End
Sub Note Event procedure arguments sender
object that triggers the event. e event object
12Text 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
13Input 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.
14TextBox Validating Event
Private Sub TextBox1_Validating(ByVal sender As
Object, ByVal e As System.ComponentModel.CancelEve
ntArgs) Handles TextBox1.Validating If
Not IsNumeric(TextBox1.Text) Then
e.Cancel True MessagBox.Show("enter
digits only") Else
MessageBox.Show("good") End If End
Sub Note Why not use the TextChanged event?
15String 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
- eNameDavid
- PositioneName.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)
16Example Extract the firstname and the lastname
from a fullname
- Dim indexSpace As Integer
- Dim firstName, lastName As String
- indexSpace TextBox1.Text.IndexOf(" ")
- firstName TextBox1.Text.Substring(0,
indexSpace) - lastName TextBox1.Text.Substring(indexSpace
1) - MessageBox.Show(firstName)
- MessageBox.Show(lastName)
17Validate SSN Format
Private Sub TextBox1_Validating(ByVal sender As
Object, ByVal e As System.ComponentModel.CancelEve
ntArgs) Handles TextBox1.Validating Dim
correct As Boolean True If Not
IsNumeric(TextBox1.Text.Substring(0, 3)) Or _
Not IsNumeric(TextBox1.Text.Substring(4,
2)) Or _ Not IsNumeric(TextBox1.Text.S
ubstring(7, 4)) Then correct False
End If If TextBox1.Text.Substring(3
, 1) ltgt "-" Or TextBox1.Text.Substring(6, 1) ltgt
"-" Then correct False End
If If correct Then
MessageBox.Show("perfect format") Else
e.Cancel True
MessageBox.Show("not correct format") End
If End Sub
18Group Box
- It is a container control.
- Controls in a Group Box should move with the box.
19Radio 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
20RadioButton Example
If radioButton1.Checkedtrue then textbox1.text
You select radio button 1 ElseIf
radioButton2.Checkedtrue then textbox1.textYou
select radio button 2 Else textbox1.textYou
select radio button 3 End If
21Check Box
- Check boxes do not belong to a group even when
they are grouped in a Group Box. - Checked property and checkedChanged event
22Check Box Example 1
Private Sub CheckBox1_CheckedChanged(ByVal sender
As System.Object, ByVal e As System.EventArgs)
Handles CheckBox1.CheckedChanged If
CheckBox1.Checked True Then MessageBox.Show(c
heck chk1") Else MessageBox.Show("unchec
k chk1") End If End Sub
23Check Box Example 2
Dim msg as String MsgYou choose If
checkBox1.checkedtrue then msgmsg check box
1 End If If checkBox2.checkedtrue then msgmsg
check box 2 End If If checkBox3.checkedtrue
then msgmsg check box 3 End If Note Cannot
put these three conditions in a If ElseIf block.
24List 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(s)
- MultiColumn
- Methods
- Add
- Clear
- Event SelectedIndexChange
25List Box Example
Private Sub Form1_Load(ByVal sender As Object,
ByVal e As System.EventArgs) Handles MyBase.Load
TextBox1.Clear() TextBox2.Clear()
ListBox1.Items.Clear()
ListBox1.Items.Add("Apple")
ListBox1.Items.Add("Orange")
ListBox1.Items.Add("Banana")
ListBox1.Items.Add("Strawberry")
TextBox2.Text ListBox1.Items.Count.ToString
End Sub Private Sub ListBox1_SelectedIndexCha
nged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ListBox1.SelectedIndexCh
anged TextBox1.Text ListBox1.SelectedIte
m End Sub
26List 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
27Selected Items Value
- Demo
- Select interest rate from a list box
- 5 -gt 0.05
- Dim intRate As Double
- Select Case ListBox1.SelectedItem
- Case "5 "
- intRate 0.05
- Case 6
- intRate 0.06
- Case 7
- intRate 0.07
- End Select
28Structured Error Handling
Try result Val(TextBox1.Text) /
Val(TextBox2.Text) TextBox3.Text
result.ToString Catch except As
DivideByZeroException
MessageBox.Show(except.Message)
Catch except As Exception
MessageBox.Show(except.Message)
Finally MessageBox.Show("I get
exdecuted, no matter what") End Try
29Using One Event Procedure to Handle Many Events
Private Sub BtnClick(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles Button1.Click, Button2.Click,
Button3.Click If sender.name "Button1"
Then MessageBox.Show("btn 1")
ElseIf sender.name "Button2" Then
MessageBox.Show("Btn2") Else
MessageBox.Show("btn3") End If End
Sub Note 1 Controls Tag property Note 2 Late
binding
30Programming Interface Controls with C
31Working with Form
- To close a form
- this.Close()
- To choose the startup formChange the code in
Program.cs - Example, to start from form2 instead of form1,
use this code - Application.Run(new Form2())
32Form 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
33TextBox Validating EventExample Testing for
digits only
There is no equivalent IsNumeric function in C.
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")
34Extract First Name and Last Name
int indexSpace string firstName, lastName
indexSpace textBox2.Text.IndexOf("
") firstName textBox2.Text.Substring(0,
indexSpace) lastName textBox2.Text.Substring(in
dexSpace 1) MessageBox.Show(firstName) Message
Box.Show(lastName)
35Creating a Boolean MyIsNumeric Function
private Boolean MyIsNumeric(string s)
try
Double.Parse(s) return true
catch
return false
36Using MyIsNumeric Function to Vaidate SSN Format
private void button3_Click(object sender,
EventArgs e) bool correct true
if (! MyIsNumeric(textBox2.Text.Substring(0,
3)) ! MyIsNumeric(textBox2.Text.Sub
string(4, 2)) ! MyIsNumeric(textBox
2.Text.Substring(7, 4)) )
correct false if
(textBox2.Text.Substring(3, 1) ! "-"
textBox2.Text.Substring(6, 1) ! "-" )
correct false if
(correct)
MessageBox.Show("perfect format")
else MessageBox.Show("not
correct format")
37Working 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.
38 private void radioButton1_CheckedChanged(object
sender, EventArgs e) if
(radioButton1.Checked)
listBox1.Items.Clear()
listBox1.Items.Add("Apple")
listBox1.Items.Add("Orange")
listBox1.Items.Add("Banana")
listBox1.Items.Add("Strawberry")
listBox1.Items.Add("Papaya")
if (radioButton2.Checked)
listBox1.Items.Clear()
listBox1.Items.Add("Spinach")
listBox1.Items.Add("Brocoli")
listBox1.Items.Add("Tomato")
listBox1.Items.Add("Lettuce")
listBox1.Items.Add("Cabbage")
private void listBox1_SelectedIndexC
hanged(object sender, EventArgs e)
textBox1.Text listBox1.SelectedItem.ToStr
ing()
39Create a Loan Payment Form
40Using 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
41 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()
42How to Use VBs IsNumeric Function
- Add a reference to Microsoft VisualBasic
Compatibility namespace. - 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
43ComboBox
- 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?
44ToolTip
- Add ToolTip to form.
- Use controls ToolTipOn property to enter tip.
45Timer
- Properties
- Enabled -- must set to True.
- Interval
- Tick Event
private void timer1_Tick(object sender,
EventArgs e) textBox1.Text
System.DateTime.Now.ToString()
46Use a Timer to Close a Form
int counter 0 private void
timer1_Tick(object sender, EventArgs e)
if (counter gt 50)
this.Close()
47Using One Event Procedure to Handle Many Events
private void buttonClick(object sender, EventArgs
e) if (sender.ToString().Cont
ains("0")) Phone
Phone "0" else if
(sender.ToString().Contains("1"))
Phone Phone "1"
else
Phone Phone "2"
textBox1.Text Phone