500 likes | 670 Views
VB.Net Introduction. Visual Studio 2012 Demo. Start page: New project/ Open project/ Recent projects Starting project: File/New Project/ C# /VB/Other language Windows Windows form application Project name/Project folder Project windows: Form design view/Form code view
E N D
Visual Studio 2012 Demo • Start page: New project/ Open project/Recent projects • Starting project: • File/New Project/ • C# /VB/Other language • Windows • Windows form application • Project name/Project folder • Project windows: • Form design view/Form code view • Solution Explorer • View/Solution Explorer • ToolBox • Property Window • Properties and Events • Server Explorer • Project/Add New Item • Property window example
Introduction to Visual Basic .Net • Event-driven programming • The interface for a VB program consists of one or more forms, containing one or more controls (screen objects). • Form and controls have events that can respond to. Typical events include clicking a mouse button, type a character on the keyboard, changing a value, etc. • Event procedure
Form • Properties: • Name, FormBorderStyle, Text, BackColor, BackImage, Opacity • Events: • Load, FormClosing, FormClosed • GotFocus, LostFocus • MouseHover, Click, DoubleCLick
Common VB.Net Controls • TextBox • Label • Button • CheckBox • RadioButton • ListBox • ComboBox • PictureBox
Text Box • Properties: • AutoSize, BorderStyle, CauseValidation, Enabled, Locked, Multiline, PasswordChar, ReadOnly, ScrollBar, TabIndex, Text, Visible, WordWrap, etc. • Properties can be set at the design time or at the run time using code. • To refer to a property: • ControlName.PropertyName • Ex. TextBox1.Text • Note: The Text property is a string data type and automatically inherits the properties and methods of the string data type.
Typical VB.Net Programming Tasks • Creating the GUI elements that make up the application’s user interface. • Visualize the application. • Make a list of the controls needed. • Setting the properties of the GUI elements • Writing procedures that respond to events and perform other operations.
To Add an Event-Procedure • 1. Select the Properties window • 2. Click Events button • 3. Select the event and double-click it. • Note: Every control has a default event. • Form: Load event • Button control: Click event • Textbox: Text Changed event • To add the default event procedure, simply double-click the control.
Demo FirstName LastName FullName .Control properties .Event: Click, MouseMove, FormLoad, etc. .Event procedures FullName: textBox3.Text textBox3.Text = textBox1.Text + " " + textBox2.Text Demo: Text alignment (TextBox3.TextAlign=HorizontalAlign.Center) TextBox3.BackColor=Color.Aqua
Demo Num1 Num2 Sum = .Control properties .Event: Click, MouseMove, FormLoad, etc. .Event procedures Sum: textBox3.text=CStr(CDbl(textBox1.text)+CDbl(textBox2.text)) Or (CDbl(textBox1.text)+CDbl(textBox2.text)).toString
Data Conversion Using VB Functions or .Net Methods • VB functions: Cstr, Cdbl, … • .Net framework: • System.Convert • TextBox3.Text = (System.Convert.ToDouble(TextBox1.Text) + System.Convert.ToDouble(TextBox2.Text)).ToString
Configure VB Project • Project property page • Application: • Target framework • Startup form • Compile: • Target CPU • Option: explicit, strict, compare • References • Tools/Options • Environment
VB Defaults • Option Explicit: • On --- must declare variables before use • Option Strict: • Off --- VB will convert the data (implicit conversion) • Option Compare: • Binary --- case sensitive • Text --- case insensitive • Option Infer • On --- When you set Option Infer to On, you can declare variables without explicitly stating a data type. The compiler infers the data type of a variable from the type of its initialization expression.
Variable Declarations • Option Explicit • Dim variableName as DataType • Variable naming rules: • The first character must be a letter or an underscore character. • Use only letters, digits, and underscore. • Cannot contain spaces or periods. • No VB keywords • Naming conventions: • Descriptive • Consistent lower and upper case characters. • Ex. Camel casing: lowerUpper, employeeName
Control Naming Conventions • The first three letters should be a lowercase prefix that indicates the control’s type. • frm, txt, lbl, btn. • The first letter after the prefix should be uppercase. • txtSalary, lblMessage • The part of the control name after the prefix should describe the control’s purpose in the application.
VB Data Types • Boolean (True/False): 2 bytes • Byte: Holds a whole number from 0 to 255. • Char: single character • Date: date and time, 8 bytes. • Decimal: Real number up to 29 significant digits, 16 bytes • Double: real, 8 bytes • Single: real, 4 bytes • Integer: 4 bytes (int32, uint32) • Long: 8 bytes integer • Short: 2 bytes integer • String • Object: Holds a reference of an object
Variable Declaration Examples • Dim empName as String • Declare multiple variables with one Dim: • Dim empName, dependentName, empSSN as String • Dim X As Integer, Y As Single • Initiatialization • Dim interestRate as Double = 0.0715
Variable Default Value • Variables with a numeric data type: 0 • Boolean variables: False • Date variables: 12:00:00 AM, January 1 of the year 1. • String variables: Nothing
Arithmetic and String Operators • Arithmetic operators: +, -, *, /. ^ \ operator: Divides two numbers and returns an integer result. Mod: Divides two numbers and returns only the remainder. • Example: 10 mod 3 .Net Math class: Math.Pow(2, 3) • String Concatenation: &, + • Compound operator: :X= X+1 or X +=1
Example Dim dividend, divisor, quotient, remainder As Integer dividend = CInt(TextBox1.Text) divisor = CInt(TextBox2.Text) quotient = dividend \ divisor remainder = dividend Mod divisor TextBox3.Text = quotient TextBox4.Text = remainder
ToString • MessageBox.Show("quotient is:" + quotient) • Trigger error • MessageBox.Show("quotient is:" + quotient.ToString) • MessageBox.Show("Remainder is: " + remainder.ToString) • Option Strict
Change Machine to Return Smallest Number of Coins Dim changes, quarters, dimes, nickles, pennies As Integer changes = CInt(TextBox1.Text) quarters = changes \ 25 dimes = (changes - quarters * 25) \ 10 nickles = (changes - quarters * 25 - dimes * 10) \ 5 pennies = changes - quarters * 25 - dimes * 10 - nickles * 5 TextBox2.Text = quarters TextBox3.Text = dimes TextBox4.Text = nickles TextBox5.Text = pennies
FV = PV * (1 +Rate) Year Dim PV, Rate, Term, FV As Double PV = CDbl(TextBox1.Text) Rate = CDbl(TextBox2.Text) Term = CDbl(TextBox3.Text) FV = PV * (1 + Rate) ^ Term TextBox4.Text = FV.ToString("C")
Formatting Numbers with the ToString Method • The ToString method can optionally format a number to appear in a specific way • The following table lists the “format strings” and how they work with sample outputs
Data Conversion • Implicit conversion: When you assign a value of one data type to a variable of another data type, VB attempts to convert the value being assigned to the data type of the variable if the OptionStrict is set to Off. • Explicit conversion: • VB.Net Functions: CStr, Ccur, CDbl, Cint, CLng, CSng, Cdate,Val, etc. • .Net System.Convert • Type class’s methods: • toString
Date Data Type • Variables of the Date data type can hold both a date and a time. The smallest value is midnight (00:00:00) of Jan 1 of the year 1. The largest value is 11:59:59 PM of Dec. 31 of the year 9999. • Date literals: A date literal may contain the date, the time, or both, and must be enclosed in # symbols: • #1/29/2013#, #1/31/2013 2:10:00 PM# • #6:30 PM#, #18:30:00#
Date Examples • Date Literal Example: • Dim startDate as dateTime • startDate = #1/29/2013# • Use the System.Convert.ToDateTime function to convert a string to a date value: • startDate = System.Convert.ToDateTime(“1/30/2003”) • If date string is entered in a text box: • startDate = System.Convert.ToDateTime(txtDate.text) • Or startDate=Cdate(txtDate.text) • Date data type format methods: • .ToLongDateString, etc.
Some Date Functions • Now(): Current date and time • Today(): Current date • TimeOfDay • DateDiff: • Demo • Days between two dates • Days to Christmas • DateDiff(DateInterval.Day, Today(), #7/4/2013#) • Date data type properties and methods
Using Online Help • MSDN VB Developer Center • http://msdn.microsoft.com/en-us/vstudio/hh388573.aspx • Learn/Visual Basic language
The If … Then Statement • If condition Then Statements • End If • If condition Then Statements Else Statements • End If • Condition: • Simple condition: • Comparison of two expressions formed with relational operators:>, <, =, < >, >=, <= • Boolean variable • Complex condition: • Formed with logical operators: ( ), Not, And, Or
Example • State University calculates students tuition based on the following rules: • State residents: • Total units taken <=12, tuition = 1200 • Total units taken > 12, tuition = 1200 + 200 per additional unit. • Non residents: • Total units taken <= 9, tuition = 3000 • Total units taken > 9, tuition = 3000 + 500 per additional unit.
Decision Tree Units <= 12 or Not Resident or Not Units <= 9 or Not
ELSEIF Statement • IF condition THEN statements [ELSEIF condition-n THEN [elseifstatements] [ELSE [elsestatements]]] End If
Select Case Structure • SELECT CASE testexpression [CASE expressionlist-n [Statements] [CASE ELSE [elsestatements] END SELECT
Select Case Example • SELECT CASE temperature CASE <40 TextBox1.text=“cold” CASE < 60 TextBox1.text=“cool” CASE 60 to 80 TextBox1.text=“warm” CASE ELSE TextBox1.text=“Hot” End Select
The Expression list can contain multiple expressions, separated by commas. Select Case number Case 1, 3, 5, 7, 9 textBox1.text=“Odd number” Case 2, 4, 6, 8, 10 textBox1.text=“Even number” Case Else End Select
Loop • FOR index = start TO end [STEP step] [statements] [EXIT FOR] NEXT index DO [{WHILE| UNTIL} condition] [statements] [EXIT DO] LOOP
Find the Sum of All Even Numbers between 1 and N Dim sumEven, myN, i As Integer myN = CInt(TextBox1.Text) sumEven = 0 For i = 1 To myN If i Mod 2 = 0 Then sumEven += i End If Next MessageBox.Show("The sum of even numbers is: " + sumEven.ToString)
Do While sumEven = 0 i = 1 Do While i <= myN If i Mod 2 = 0 Then sumEven += i End If i += 1 Loop MessageBox.Show("The sum of even numbers is: " + sumEven.ToString)
With … End With Convenient shorthand to execute a series of statements on a single object. Within the block, the reference to the object is implicit and need not be written. With TextBox1 .Height = 250 .Width = 600 .Text = “Hello” End With
Function Private Function tax(salary) As Double tax = salary * 0.1 End Function • Or Private Function tax(salary) As Double Return salary * 0.1 End Function
Procedures . Sub procedure: Sub SubName(Arguments) … End Sub • To call a sub procedure SUB1 CALL SUB1(Argument1, Argument2, …) • Or SUB1(Argument1, Argument2, …)
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 Example Private Sub Form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim myX, myY As Integer myX = 10 test(myX, myY) MessageBox.Show(myY) End Sub Private Sub test(x As Integer, ByRef y As Integer) y = 2 * x End Sub
ByRef, ByVal example Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.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
Variable Scope • Block-level scope: declared within a block of code terminated by an end, loop or next statement. • If city = “Rome” then • Dim message as string = “the city is in Italy” • MessageBox.Show(message) • End if • Procedural-level scope: declared in a procedure • Class-level, module-level scope: declared in a class or module but outside any procedure with either Dim or Private keyword. • Project-level scope: a module variable declared with the Public keyword.