Date post: | 19-Dec-2015 |
Category: |
Documents |
View: | 229 times |
Download: | 0 times |
VB.NET User Interface Controls
VB User Interface Objects• Form• InputBox, MessageBox• Standard Controls:
– TextBox, MaskedTextBox, List Box, Option Button, Check Box, CheckedListBox, Command Button, GroupBox, etc.
• Menu:– MenuStrip, ContextMenuStrip– ToolStrip
• ToolStripContainer– ToolTip
• Others:– Containers– Components– Dialogs
Form• 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
Multiple FormsTwo forms: Form1, Form2To 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()
.
• 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
Using 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
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…
Form Closing Event Example
Private Sub Form10_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) 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
InputBoxInputBox(Prompt [,Title] [, Default] [, Xpos] [, Ypos])
Xpos is the distance from the left edge of the screen, and Ypos is the distance from the top of the screen. Both are measured in twips (1/1440 th of an inch).
Note: The arguments are positional and optional. Enter a comma to skip an argument.
cityName = InputBox("Please enter city name:“, , “SF”)
If cityName = vbNullString Then
MessageBox.Show ("customer click cancel")
Else
Text1.Text = cityName
End If
Note: vbNullString is a VB constant representing null value. All VB constants are listed in Constants collection.
Text Box
• Useful properties– BackColor, BorderStyle– ReadOnly– Enable– Visible– Password Character– Multiline– ScrollBar– Text
• Useful events– TextChanged: default event– Validating
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.
TextBox Validating Event IsNumeric function
Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
If Not IsNumeric(TextBox1.Text) Then
e.Cancel = True
MessageBox.Show("enter digits only")
Else
MessageBox.Show("good")
End If
End Sub
Note: Why not use the TextChanged event?
MaskedTextBox
• To select a mask:– Click the smartTag and choose Set Mask, or– Use the mask property to choose a mask.
• Custom mask:– Search Help– Example:
• (???)-###
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)
Example: 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)
Validate SSN Format (Or Use MaskedTextbox)Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) 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.Substring(7, 4)) Then
correct = False
End If
If TextBox1.Text.Substring(3, 1) <> "-" Or TextBox1.Text.Substring(6, 1) <> "-" 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
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
RadioButton Example 1
Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
If RadioButton1.Checked = True Then
MessageBox.Show("Check RadioButton1")
Else
MessageBox.Show("uncheck RadioButton1")
End If
End Sub
RadioButton Example 2
If radioButton1.Checked=true then
textbox1.text=“You select radio button 1”
ElseIf radioButton2.Checked=true then
textbox1.text=“You select radio button 2”
Else
textbox1.text=“You select radio button 3”
End If
Check Box
• Check boxes do not belong to a group even when they are grouped in a Group Box.
• Checked property and checkedChanged event
Check Box Example 1Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
If CheckBox1.Checked = True Then
MessageBox.Show(“check chk1")
Else
MessageBox.Show("uncheck chk1")
End If
End Sub
Check Box Example 2Dim msg as String
Msg=“You choose “
If checkBox1.checked=true then
msg=msg & “check box 1”
End If
If checkBox2.checked=true then
msg=msg & “check box 2”
End If
If checkBox3.checked=true then
msg=msg & “check box 3”
End If
Note: Cannot put these three conditions in a If …ElseIf block.
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(s)– MultiColumn
• Methods– Add– Clear
• Event: SelectedIndexChange
List Box ExamplePrivate 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_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
TextBox1.Text = ListBox1.SelectedItem
End Sub
List 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
Selected Item’s Value
• Demo:– Select interest rate from a list box:
• 5% -> 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
CheckedListBox
• ItemCheck event– Private Sub CheckedListBox1_ItemCheck(ByVal sender As Object,
ByVal e As System.Windows.Forms.ItemCheckEventArgs) Handles CheckedListBox1.ItemCheck
– TextBox2.Text = CheckedListBox1.SelectedItem– End Sub
• Multiple selections:– CheckedItems– CheckedIndices– GetItemChecked
Using CheckedIndices and GetItemChecked Properties
Dim i As Integer For Each i In CheckedListBox1.CheckedIndices MessageBox.Show(CheckedListBox1.Items(i)) Next For i = 0 To CheckedListBox1.Items.Count - 1 If CheckedListBox1.GetItemChecked(i) = True Then MessageBox.Show(CheckedListBox1.Items(i)) End If Next
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.– SelectedItem may be different from the Text property.
• 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
• Timer– Properties:
• Enabled -- must set to True.• Interval
– Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
label1.Text = System.DateTime.Now.ToString End Sub
Use a Timer to Close a Form
Dim counter As Integer = 0Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick counter = counter + 1 If counter > 100 Then Me.Close() End If End Sub
Structured Error HandlingTry
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
MenuStrip Control
– Add MenuStrip control and follow the TypeHere instruction.
– Each submenu and each item on a submenu is represented by a MenuItem control.
– Write an event procedure for each menu item.
Using 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 propertyNote 2: Late binding