350 likes | 536 Vues
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
E N D
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 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() .
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
MessageBox 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 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
InputBox InputBox(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/1440th 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 checkedChangedevent
Check 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(“check chk1") Else MessageBox.Show("uncheck chk1") End If End Sub
Check Box Example 2 Dim 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 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_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 = 0 Private 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 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
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 property Note 2: Late binding