Multiple Forms & Procedures

advertisement
VB Procedures
Procedures
. Sub procedure:
Private/Public Sub SubName(Arguments)
…
End Sub
Private: Can only be accessed by procedures in the same
form.
Public: Can be accessed by procedures in other forms.
• To call a sub procedure SUB1
• Call SUB1(Argument1, Argument2, …)
Function
• Private Function tax(salary) As Double
• tax = salary * 0.1
• End Function
– Or
• Private Function tax(salary)
• Return salary * 0.1
• End Function
Creating a
IsAlphaNumeric(string) Function
• IsNumeric: test a string
• IsDigit, IsLetter, IsLetterOrDigit: test a char
– Char.IsLetterOrDigit(char)
Function IsAlphaNumeric(ByVal aString As String) As Boolean
Dim i As Integer = 0
Dim AlphaNumeric As Boolean = True
For i = 0 To aString.Length - 1
If Not Char.IsLetterOrDigit(aString.Substring(i, 1)) Then
AlphaNumeric = False
Exit For
End If
Next
If AlphaNumeric = True Then
IsAlphaNumeric = True
Else
IsAlphaNumeric = False
End If
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
If IsAlphaNumeric(TextBox1.Text) Then
MessageBox.Show("textbox1 is alphanumeric")
Else
MessageBox.Show("textbox1 is not alphanumeric")
End If
End Sub
Call by Reference
Call by Value
• ByRef
– The address of the item is passed. Any changes
made to the passing variable are made to the
variable itself.
• ByVal
– Default
– Only the variable’s value is passed.
ByRef, ByVal example
Private Sub Command1_Click()
Dim myStr As String
myStr = TextBox1.Text
Call ChangeTextRef (myStr)
TextBox1.Text = myStr
End Sub
Private Sub ChangeTextRef(ByRef strInput As
String)
strInput = "New Text"
End Sub
Input, Output Arguments
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim sal, tax As Single
sal = CSng(TextBox1.Text)
Call CalTax(sal, tax)
TextBox2.Text = tax.ToString
End Sub
Private Sub CalTax(ByVal Salary As Single, ByRef Tax As Single)
Tax = 0.1 * Salary
End Sub
Can we pass the Tax ByVal?
Static Variables
• Static VariableName as DataType
• Static variables are local variables but are
not destroyed when a procedure terminates.
Their value are kept.
Static Variable Example
Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Button1.Click
Static clickCounter As Integer = 0
clickCounter += 1
If clickCounter > 3 Then
MsgBox("Sorry, you can only click 3 times!")
Button1.Enabled = False
End If
End Sub
Event Procedures
• Example:
– Private Sub Button1_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles Button1.Click
• The Handles keyword
– Procedure name may change
• Handling multiple events:
– Private Sub AllButtons_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Button1.Click,
Button2.CLick
Using One Event Handler to Handle
Events Generated by Many Controls
• Assume we have 3 buttons.
• Use the Handles clause in the event
procedure to associate controls with the
event procedure.
• We can assign a value for each control’s Tag
property, or use control’s TabIndex property
to determine which control generates the
event.
Private Sub Button_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click, Button2.Click, Button3.Click
If sender.tag = "1" Then
MessageBox.Show("button 1 clicked")
ElseIf sender.tag = "2" Then
MessageBox.Show("button 2 clicked")
Else
MessageBox.Show("button 3 clicked")
End If
End Sub
Note: VB IntelliSense will not show the Tag property after you type sender.
Early Binding/Late Binding
• Early binding: VB compiler knows the
object’s data type. It enables the use of
IntelliSense.
• Late binding: VB compiler can’t determine
the type of object that we are calling. This
occurs because the object is declared as
Object data type.
Demo: Phone Simulator
Menu
Main Menu Control
– Add MainMenu control and follow the
TypeHere instruction.
– Each submenu and each item on a submenu is
represented by a MenuItem control.
– Use an & to specify an access key in the
caption. Ex. &File, Sho&s
– Write an event procedure for each menu item.
• Shortcut keys
– Select the Shortcut key property in the MenuItem’s
property window.
– Select the Shorcut key from list.
– Set ShowShortcut property to true.
• Separator bar
– Right clock a menu item/Insert Separator
• Inserting, deleting a menu item
– Right click and select the option.
• Rearranging menu items
– dragging
Context Menu
• A context menu is a menu that displays
when an object on the screen is rightclicked.
• Add the ContextMenu control (it is placed
in a tray under the form). Right-click the
control and choose Edit to create the menu.
• Use the object’s ContextMenu property to
bind the object to the context menu.
Simple Text Editor
• Textbox’s properties, methods
– Help
– Object Browser
• System.Windows.Forms
– Cut, Copy, Paste, Undo, SelectAll, etc.
• Menu: Undo, Copy, Cut, Paste, SelectAll, Search
• Clipboard:
– Clipboard.SetDataObject(TextBox1.SelectedText)
– Clipboard.GetDataObject.GetData(DataFormats.Text)
FontDialog Control
• If FontDialog1.ShowDialog() = DialogResult.OK Then
•
TextBox1.Font = FontDialog1.Font
• End If
Download