工具列控制項-項目

Visual Basic是使用ToolStrip控制項來建立工具列,它是一種容器控制項,可以新增各種項目控制項。

image

項目控制項

說明

ToolStripButton

建立工具列的按鈕控制項

ToolStripLabel

新增工具列的標籤控制項

ToolStripTextBox

新增工具列的文字方塊控制項

ToolStripSeparator

在工具列建立一條分隔線

ToolStrip控制項的相關屬性說明

屬性

說明

Name

控制項名稱

Items

工具列上項目控制項的集合物件

ShowItemToolTips

是否顯示項目控制項的提示文字,預設值為True顯示,False為不顯示

Dock

控制項緊結外部容器的哪些邊,預設值Top是緊結上方,Left是左邊、Right是右邊、Bottom是下方,Fill是填滿四邊

ToolStripButton控制項的相關屬性

屬性

說明

Name

控制項名稱

Text

按鈕的標題文字

DisplayStyle

按鈕顯示樣式是文字Text、圖形Image或兩者皆有,預設值是Image

ToolTipText

按鈕的提示文字

Image

設定按鈕顯示的圖形

ImageScaling

設定是否自動調整至ToolStrip控制項的尺寸,即預設值SizeToFit,None就是顯示原圖形尺寸

TextDirection

文字方向是水平、垂直90度,垂直270度等

TextImageRelation

如果按鈕是圖形文字兩者皆有時,設定文字與圖形是重疊顯示、文字在上或圖形在上來顯示

alyoou 發表在 痞客邦 留言(0) 人氣()

功能表控制項

(MenuStrip)可以在表單上方的標題列下建立指定功能的功能表列,每一個功能表列的選項本身或選單中的選項都是ToolStripMenuItem控制項。

image

建立功能表控制項-新增

可以直接在表單上新增MenuStrip功能表控制項,並且編輯其選項和子選單。

建立選項的事件處理程序

在功能表選項如同表單上的按鈕控制項,按一下就可以執行事件處理程序的程式碼,其預設事件是Click。

image

ToolStripMenuItem控制項的相關屬性

屬性

說明

Name

選項名稱

Text

選項的標題名稱,"&"符號可以建立Alt組合鍵

Checked

是否為勾號已核取狀態,True為是,False預設值為不是

ShortcutKeys

設定選項的快速鍵,可以使用組合鍵來執行選項

Enabled

選項是否有作用,True預設值是有作用,False為沒有作用(灰色顯示)

Visible

是否顯示選項,True預設值是顯示,False為不顯示

ToolTipText

選項的提示文字

alyoou 發表在 痞客邦 留言(0) 人氣()

當在文字方塊控制項輸入文字內容時,控制項會觸發一系列鍵盤事件,如下表所示:

事件

說明

KeyDown

當使用者在控制項擁有焦點時,按下按鍵時產生的事件

KeyPress

當使用者按下和釋放ANSI字碼的按鍵時產生此事件,可以取得輸入的字元

KeyUp

當使用者在控制項擁有焦點時,放開按鍵時產生的事件

KeyDown和KeyUp事件處理程序是依參數的KeyEventArgs物件屬性來取得按下哪一個按鍵,其相關屬性如下表所示:

屬性

說明

KeyCode

取得按下按鍵的「按鍵碼」(Key Code)整數值,可以使用Keys列舉常數,例如:四個方向鍵為Keys.Up、Keys.Down、Keys.Right和Keys.Left

Control

檢查是否按下Ctrl鍵,True為按下,False為沒有按下

Alt

檢查是否按下Alt鍵,True為按下,False為沒有按下

Shift

檢查是否按下Shift鍵,True為按下,False為沒有按下

 

KeyPress事件是在KeyDown事件之後和KeyUp事件之前觸發,可以使用函數來取得按鍵的ASCII碼,在事件處理程序傳入的參數是KeyPressEventArgs物件,其相關屬性如下表所示:

屬性

說明

KeyChar

傳回使用者按下按鍵的字元

Handled

設定是否忽略使用者按鍵,預設值False表示不忽略,True為忽略

alyoou 發表在 痞客邦 留言(0) 人氣()

滑鼠事件是在表單或控制項上操作滑鼠時,移動、按一下和按二下等操作所觸發的一系列事件,如下表所示:

事件

說明

MouseEnter

當滑鼠進入控制項時,就會觸發此事件

MouseMove

當滑鼠移動時,就會觸發此事件

MouseDown

當按下滑鼠按鍵時,就會觸發此事件

Click

當滑鼠按一下時,就會觸發此事件

DoubleClick

當滑鼠按二下,即雙擊時,就會觸發此事件

MouseUp

當滑鼠按鍵放開時,就會觸發此事件

MouseLeave

當滑鼠離開控制項時,就會觸發此事件

MouseUp和MouseDown事件

MouseUp和MouseDown事件是當使用者按下滑鼠按鍵和放開時,產生的事件。程式碼可以從事件處理程序參數e的MouseEventArgs物件取得使用者按下哪一個按鍵。

物件常用的屬性,如下表所示:

屬性

說明

Button

其值是使用者按下滑鼠的哪一個按鍵,它是MouseButtons列舉常數,MouseButtons.Left是左鍵、MouseButtons.Middle是中鍵,和MouseButtons.Right是右鍵

X

滑鼠游標位置的X座標

Y

滑鼠游標位置的Y座標

 

MouseEnter、MouseMove和MouseLeave事件-說明

MouseEnter和MouseLeave事件是滑鼠進入控制項和離開控制項時產生的事件,我們可以使用這2個事件建立控制項的動畫效果。例如:進入控制項時,背景色彩為紅色,離開時控制項變成綠色。

MouseMove事件是在滑鼠移動時產生的一系列事件,在程式中只需使用此事件,就可以建立滑鼠拖拉控制項的效果,因為需要調整控制項位置,換句話說,我們需要在程式碼取得控制項的座標和尺寸。

其相關屬性如下表所示:

屬性

說明

Top

設定或取得控制項上邊緣和其容器上(即表單)邊緣之間的距離,即控制項左上角的Y座標

Left

設定或取得控制項內部左邊緣和其容器左邊緣之間的距離,即控制項左上角的X座標

Width

控制項的寬度

Height

控制項的高度

alyoou 發表在 痞客邦 留言(0) 人氣()

表單和控制項預設的事件處理程序,如下表所示:

控制項種類

預設事件

預設的事件處理程序

表單(Form1)

Load

Form1_Load()

按鈕(Button1)

Click

Button1_Click()

標籤(Label1)

Click

Label1_Click()

文字方塊(TextBox1)

TextChanged

TextBox1_TextChanged()

核取方塊(CheckBox1)

CheckedChanged

CheckBox1_CheckedChanged()

選項按鈕(RadioButton1)

CheckedChanged

RadioButton1_CheckedChanged()

 

常用的表單事件

事件

說明

Load

在執行應用程式載入表單時,就會觸發此事件,通常我們會在此事件的處理程序,指定全域變數的初值或控制項的初始狀態

Resize

當調整視窗尺寸時,就會觸發此事件

Activated

當視窗成為「作用中」視窗時,就會觸發此事件

Deactivate

當視窗成為「非作用中」視窗時,即在其他視窗後方時,就會觸發此事件

Paint

重繪表單內容,通常是使用在繪圖時,詳細說明請參閱第11章

FormClosing

當使用者按下標題列的【X】鈕時,表單在準備關閉前會觸發此事件,我們可以在此事件取消視窗關閉

FormClosed

在FormClosing事件之後,就會觸發此事件

alyoou 發表在 痞客邦 留言(0) 人氣()

字串是String資料型態的變數或字串值,字串是0或多個依序的Char資料型態的字元,以雙引號括起的文字內容,如下所示:
Dim str As String ="Visual Basic 2010程式設計"

Dim str1 As String
str1 = "Visual Basic 2010程式設計"
字串長度與大小寫轉換
函數可以取得字串長度、進行英文字母大小寫轉換和刪除頭尾的空白字元,如下表所示:
函數 說明
Len(Stmt) 傳回整數的字串長度,擁有多少個字元或中文字
UCase(Stmt) 將參數字串或字元的英文字母轉換成大寫
LCase(Stmt) 將參數字串或字元的英文字母轉換成小寫
LTrim(Stmt) 刪除字串開頭的空白字元
RTrim(Stmt) 刪除字串結尾的空白字元
Trim(Stmt) 刪除頭尾兩端的空白字元
Space(num) 傳回參數num個空白字元的字串
Asc(Stmt) 傳回參數Stmt字串第1個字元的ASCII碼,例如:Asc("A")為65

取出子字串與字串反轉
函數 說明
Mid(Stmt, start[ , length]) 從參數Stmt字串的start位置(從1開始)取出長度length的子字串,如果沒有length參數,就是從start位置到字串結尾的所有字元
Left(Stmt, length) 從參數Stmt字串從開頭起算共length長度的字元,如果為0傳回空字串,如果大於字串長度,傳回整個字串
Right(Stmt, length) 從參數Stmt字串從右邊回頭起算共length長度的字元,如果為0傳回空字串,如果大於字串長度,傳回整個字串
StrReverse(Stmt) 將參數的Stmt字串反轉,例如:Visual Basic成為cisaB lausiV

       
範例練習 :
Dim a, b, c As String

        a = "1234567.abc"
        b = "98766.abcd"

        MsgBox("LEFT : " & Microsoft.VisualBasic.Left(a, 3))
        MsgBox("Right : " & Microsoft.VisualBasic.Right(a, 3))
        MsgBox("Mid : " & Microsoft.VisualBasic.Mid(a, 4, 3))
        MsgBox("Len : " & Microsoft.VisualBasic.Len(a))


InStr函數,傳回在某字串中一字串的最先出現位置,傳回0表示沒有找到,我們可以利用它來判斷字串中是否有關鍵字存在。

Dim str1 As String, str2 As String 
str1 = "1 3  2  abc     " 
str2 = "c" 
msgbox(InStr(1, str1, str2))  
msgbox(InStr(1, str1, str2) >= 1)  

alyoou 發表在 痞客邦 留言(0) 人氣()

陣列是一種程式語言的基本資料結構,屬於一種循序性的資料結構,陣列屬於參考資料型態,它可以將相同資料型態的變數集合起來,使用一個名稱代表,以索引值存取元素,每一個元素相當於是一個變數。

陣列同樣使用【Dim】關鍵字來宣告,我們可以在宣告同時指定陣列尺寸。一維陣列的宣告語法,如下所示:

Dim 陣列名稱(最大索引) As 資料型態

Dim 陣列名稱(0 To 最大索引) As 資料型態

陣列元素個數為括號的最大索引數加一,也可以使用To關鍵字指出範圍。

例如:宣告一維陣列來儲存學生姓名和成績,如下所示:

Dim arrScore(4) As Integer

Dim arrName(4) As String

上述程式碼宣告2個一維陣列,一為整數陣列;一是字串陣列,括號值是陣列最大的索引值。索引值是從0開始,以整數陣列來說是0~4共有5個元素。

宣告一維陣列-陣列值

我們也可以在宣告陣列時,不指定陣列最大索引值,而直接指定陣列元素的初值,如下所示:

Dim arrScore() As Integer = {60, 89, 75, 68, 90}

另一種方法是使用指定敘述來指定陣列值,如下所示:

arrScore(0) = 60

arrScore(1) = 89

arrScore(2) = 75

arrScore(3) = 68

arrScore(4) = 90

 

宣告一維陣列-取出陣列值

同樣方式,我們可以使用索引值來取出陣列元素值,如下所示:

Dim score As Integer

score = arrScore(3)

上述程式碼取得陣列索引3的值,因為索引值從0開始,也就是陣列的第4個元素值68

 

For Each迴圈走訪陣列元素與邊界函數-走訪陣列(語法)

For Each迴圈可以輕鬆走訪整個一維陣列,其語法如下所示:

For Each 變數 In 陣列

程式區塊

Next

上述「變數」可以取得陣列的一個元素,變數需要和陣列屬於相同資料型態,迴圈自動從索引0開始,每執行一次迴圈取得一個元素值並且自動移至下一個元素,直到沒有元素為止。

例如:計算上一節arrScore陣列元素的總和,如下所示:

For Each element In arrScore

total += element

Next

上述程式碼的變數element是陣列元素,每執行一次,就將陣列元素值加到total,最後變數total是陣列元素的總和。

 

如果使用For/Next迴圈(Do/Loop迴圈也可以)來存取陣列元素,我們可以搭配Visual Basic函數來取得陣列邊界,傳入參數是陣列變數,如下表所示:

函數

說明

LBound(Array)

傳回整數值的陣列最小索引值,因為Visual Basic預設索引是從0開始,所以其預設的傳回值是0

UBound(Array)

傳回整數值的陣列最大索引值

 

 

多維陣列的處理-說明

二維陣列或多維陣列都是一維陣列的擴充。如果將一維陣列想像成一度空間的線,二維陣列就是二度空間的平面,三維陣列即空間。

在日常生活中的二維陣列應用非常廣泛,只要是平面的表格,都可以轉換成二維陣列來表示。例如:月曆、功課表和成績單等。例如:在Visual Basic宣告學生成績的二維陣列,如下所示:

Dim Scores(,) As Integer = { { 54, 68, 93 }, { 67, 78 , 89} }

 

二維陣列如果沒有指定陣列初值,我們需要在宣告時指定陣列尺寸,如下所示:

Dim Scores(1, 2) As Integer

Scores(0,0)=54

Scores(0,1)=68

Scores(0,2)=93

Scores(1,0)=67

Scores(1,1)=78

Scores(1,2)=89

上述程式碼設定二維陣列的元素值。

 

多維陣列的處理-走訪元素

在設定陣列值後,存取二維陣列需要使用二層巢狀迴圈,如下所示:

For i = 0 To 1

    For j = 0 To 2

       Sums(i) += Scores(i, j)

   Next j

Next i

alyoou 發表在 痞客邦 留言(0) 人氣()

「變數範圍」(Scope)是當程式執行時,變數可以讓程序或函數內或其他程式區塊存取的範圍。

變數依宣告位置擁有三種範圍,如下所示:

  • 區塊範圍(Block Scope):在程式區塊內使用Dim宣告的變數,變數只能在區塊內使用,在區塊外的程式碼並無法存取這些變數。
  • 區域範圍(Local Scope):在程序和函數內使用Dim宣告的變數,變數只能在程序或函數內使用,程序或函數外程式碼並無法存取此變數。
  • 全域範圍(Global Scope):變數如果是在模組/類別中,以Dim或Private宣告在程序和函數外,則該模組/類別檔案的程序和函數都可以存取此變數。
 

alyoou 發表在 痞客邦 留言(0) 人氣()

Function函式,函式和Sub程序很像,也是可以自己寫出一個具功能的程式區塊,以方便重複使用,差別在於Function函式有傳回值,而Sub程序沒有傳回值

在Visual Basic程式的函數語法,如下所示:

[Public | Private] Function 名稱 [As 資料型態]

程式區塊

Return 值 | 名稱 = 值

End Function

As之後是傳回值的資料型態。函數傳回值是使用Return關鍵字來傳回值,或將函數名稱指定成需要傳回的值。

例如:將1加到10的For/Next迴圈的程式區塊,轉換成AddToTen()函數,如下所示:

Function AddToTen()
Dim intI, intTotal As Integer
For intI = 1 To 10
    IntTotal = intTotal + intI
Next intI
    Return intTotal
End Function

函數使用Return傳回最後結果。傳回值也可以將函數名稱指定成傳回值,如下所示:

AddToTen = intTotal

 

函數因為擁有傳回值,通常都是在指定敘述來執行函數呼叫,並且位在指定敘述的右邊,如下所示:

lblOutput.Text = AddToTen()

程序與函數不只是將重複程式區塊抽出成獨立區塊,還可以新增程序與函數的參數。

在呼叫時傳入參數值後,相同的程序與函數就可以得到不同的執行結果。

alyoou 發表在 痞客邦 留言(0) 人氣()

程序是使用Sub和End Sub包圍的程式區塊,在Sub關鍵字後是程序名稱,程序並沒有傳回值。

在Visual Basic程式建立程序的語法,如下所示:

[Public | Private] Sub 名稱

    程式區塊

End Sub

上述Sub指令前的Public或Private是存取修飾子。

程序名稱的命名和變數名稱相同,在同一個模組不能使用相同的程序名稱。例如:顯示書名的程序,如下所示:

Sub ShowTitle()
Dim msg As String
        msg = "Visual Basic 2010程式設計"
lblOutput.Text = msg & vbNewLine
End Sub

 

 


在程式碼呼叫程序是使用Call指令,只需在其後加上程序名稱即可,如下所示:


Call ShowTitle()

上述程序呼叫因為程序沒有參數,也可以省略括號,或不使用Call關鍵字也可以,如下所示:

ShowTitle

 

範例:

所以在Form1_Load寫入:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Call Sum100() '呼叫程序
    End Sub
End Class
或省略Call關鍵字也可以:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Sum100() '省略Call也能呼叫程序
    End Sub
End Class
因此完整的程式碼如下:
Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Call Sum100() '呼叫程序
    End Sub
    Sub Sum100()
        Dim S As Integer
        For i As Integer = 1 To 100
            S += i
        Next
        MsgBox(S)
    End Sub
End Class

alyoou 發表在 痞客邦 留言(0) 人氣()

清單控制項

清單控制項也是一種選擇用途的控制項,共有三種控制項如下所示:

清單方塊(ListBox):顯示項目清單,使用者可以選取1到多個選項,如下圖所示:

image

在表單設計視窗新增清單控制項後,例如:ListBox1,就可以在「屬性」視窗找到【Items】屬性來新增項目,如下圖所示:

選取ListBox可自訂編輯的項目

image

輸入需要的項目名稱,完成按確定按鈕

image 

也可以使用Items屬性來修改

image

 

 

 

下拉式清單方塊(ComboBox):

使用下拉式方式清單方塊來顯示項目清單,擁有多種顯示方式,如下圖所示:

image

選取ComboBox可自訂編輯的項目

image

輸入需要的項目名稱,完成按確定按鈕

image

底下為執行選擇的畫面表示

image

 

清單控制項的項目清單是名為ObjectCollection的集合物件,Visual Basic程式碼可以使用Items屬性取得此集合物件,即可使用相關方法來新增或刪除項目。其相關方法如下表所示:

方法

說明

範例

Add(String)

新增參數字串到清單

ListBox1.Items.Add(“老鼠”)

Insert(Int, String)

在Int索引位置(以0開始)插入第2個參數的字串到清單

ListBox1.Items.Insert(1,“行動碟”)

Remove(String)

從清單刪除參數字串的項目

ListBox1.Items.Remove(“老鼠”)

RemoveAt(Int)

從清單刪除參數索引值的項目

ListBox1.Items.RemoveAt(1)

Clear()

清除清單的所有項目

ListBox1.Items.Clear()

nListBox控制項的常用屬性,如下表所示:

屬性

說明

Name

控制項名稱

Sorted

是否排序項目,預設值False是不排序,True為排序

MultiColumn

是否多欄顯示項目,預設值是False只以單欄顯示,True為多欄顯示

SelectionMode

清單項目的選取方式,其值是SelectionMode列舉常數,None是不能選取,One是單選(預設值),MultiSimple使用簡單方式來選取多個項目,按一下選取,再按一下取消,MultiExtended需要配合Ctrl和Shift鍵才能選取多個項目

Items

設定或取得清單項目的集合物件

SelectedItems

如果是多選,傳回選擇項目的集合物件

SelectedIndex

傳回目前選擇的項目索引,-1表示沒有選取,0為第1個項目

alyoou 發表在 痞客邦 留言(0) 人氣()

Exit For跳出迴圈

nFor/Next迴圈如果尚來到達結束條件時,就可以使用Exit For強迫跳出For/Next迴圈,馬上結束迴圈的執行,如下所示:

For intI = 1 To 100 Step 1

    If amount <= 0 Then
       Exit For
    End If

Next

alyoou 發表在 痞客邦 留言(0) 人氣()

For To/Next

迴圈可以執行固定次數的迴圈,預設每次增加1,如果到達結束條件,就結束迴圈執行。其語法如下所示:

For 變數 = 起始值 To 終止值

程式區塊

Next 變數

上述迴圈的「變數」是計數器變數,其範圍是從「起始值」到「終止值」,每次增加1,執行迴圈的次數是:「終止值」-「起始值」+1次,其中Next關鍵字後的「變數」可以省略。

例如:計算6加到15總和的迴圈,如下所示:

Dim intI, intTotal As Integer
For intI = 6 To 15
    intTotal = intTotal + intI
Next intI

 


For Step/Next


For/Next迴圈的增量如果不是1,我們可以使用Step關鍵字指定每次增加或減少的量。如果使用負數值,表示每次是將計數器變數減掉Step值,此時For Step/Next迴圈,如下所示:

For intI = 100 To 1 Step -1
    intTotal = intTotal + intI
Next intI

上述程式碼倒過來從100加到1,變數intI值依序100、99、98、97、…、3、2、1共執行100次迴圈

alyoou 發表在 痞客邦 留言(0) 人氣()

Do/Loop
迴圈可以使用While條件在迴圈開頭檢查,開頭檢查的目的是檢查是否允許進入迴圈,當While的測試條件成立才能進入迴圈。
例如:計算1萬元5年複利18%的本利和,如下所示:
intI = 1 
dblTotal = 10000
dblRate = 0.18
Do While intI <= 5
   dblTotal += dblTotal * dblRate
   intI = intI + 1
Loop


Do Until/Loop迴圈

Do/Loop迴圈如果使用Until條件在迴圈開始檢查,迴圈是執行到條件成立為止,如果條件不成立就進入迴圈。
例如:計算1萬元5年複利18%的本利和,如下所示:
intI = 1 
dblTotal = 10000
dblRate = 0.18
Do Until intI > 5
   dblTotal += dblTotal * dblRate
   intI = intI + 1
Loop



Do/Loop While迴圈

nDo/Loop迴圈可以使用While條件在迴圈結尾檢查,此時Do/Loop迴圈至少會執行一次。
例如:計算1萬元5年複利18%的本利和,如下所示:
intI = 1 
dblTotal = 10000
dblRate = 0.18
Do
   dblTotal += dblTotal * dblRate
   intI = intI + 1
Loop While intI <= 5



Do/Loop Until迴圈

Do/Loop迴圈如果使用Until條件在迴圈結尾檢查,迴圈也一樣至少執行一次。
例如:計算1萬元5年複利18%的本利和,如下所示:
intI = 1 
dblTotal = 10000
dblRate = 0.18
Do
    dblTotal += dblTotal * dblRate
    intI = intI + 1
Loop Until intI > 5

alyoou 發表在 痞客邦 留言(0) 人氣()

Choose()函數

可以依據第1個參數的整數值,來傳回對應值

程式碼依照變數inDay的整數值,值1傳回第2個參數,即星期日,值2傳回第3個參數,依此類推。

lblOutput.Text=Choose(inDay, "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六")

alyoou 發表在 痞客邦 留言(0) 人氣()

alyoou 發表在 痞客邦 留言(0) 人氣()

變數的命名規則

識別字不可使用Visual Basic關鍵字或系統的物件名稱。

  • 名稱必須是英文字母或底線"_"開頭,如果以底線開頭,至少需要一個其他英文字母或數字。
  • 名稱長度不可超過16383個字元,不區分英文字母大小寫,abc和ABC代表同一個名稱。
  • 名稱中間不能有句點"."、運算子(例如:+-*/^等)或空白,只能是英文字母、數字和底線。
  • 在宣告的有效範圍內必須唯一。

匈牙利命名法是將變數的前3個字元視為資料型態,依不同資料型態加上字首字串,如下表所示:

資料類型

字首

範例

Booleam

bln

blnDoit

Char

chr

chrA

Integer

int

intCounter

Object

obj

objCar

String

str

strName

 

 

物件名稱的命名規則

  • 當我們使用VBE將控制項物件新增至表單時,預設是以控制項名稱加上編號作為名稱(即Name屬性的值)。
  • 例如:Form1、Label1和Button1等,預設的物件名稱缺乏可讀性,並不能作為程式註解的用途,建議將物件名稱重新命名成有意義的名稱。

表單與控制項類

字首

範例

表單

frm

frmTest、frmCalculate

按鈕

btn

btnSave、btnOpen

標籤

lbl

lblShowMessage

文字方塊

txt

txtName、txtStudentName

alyoou 發表在 痞客邦 留言(0) 人氣()

變數的宣告語法如下:
Dim + (使用者自訂的變數名稱) + As + 變數的型別


宣告的例子:
Dim number1 As Integer
宣告變數 number1 為Integer(整數)。


宣告變數並且初始化:
Dim number2 As Integer = 1 0 0
宣告變數 number2 為Integer(整數) , 並且預設該變數的值為100。

Visual Basic 資料型別 ( 參考網站內容 )

Visual Basic 型別

Common Language Runtime 型別結構

表面儲存配置

數值範圍

Boolean

Boolean

視實作平台而定

True 或 False

Byte

Byte

1 個位元組

0 至 255 (不帶正負號)

Char (單一字元)

Char

2 個位元組

0 至 65535 (不帶正負號)

日期

DateTime

8 個位元組

1 年 1 月 1 日 0:00:00 (午夜) 至 9999 年 12 月 31 日 11:59:59 PM

Decimal

Decimal

16 個位元組

0 到 +/-79,228,162,514,264,337,593,543,950,335 (+/-7.9...E+28) † (無小數點),0 到 +/-7.9228162514264337593543950335 (小數點右邊有 28 位數),

Double (雙精度浮點數) Double 8 個位元組

-1.79769313486231570E+308 到 -4.94065645841246544E-324 † (負值),

4.94065645841246544E-324 到 1.79769313486231570E+308 † (正值)

Integer Int32 4 個位元組 2,147,483,648 至 2,147,483,647 (帶正負號)
Long (長整數) Int64

8 個位元組

-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 (9.2...E+18 †) (帶正負號)
物件 Object (類別)

32 位元 4 個位元組

64 位元 8 個位元組

可以用 Object 型別之變數加以儲存的任何型別
SByte SByte 1 個位元組 -128 至 127 (帶正負號)
Short (短整數) Int16 2 個位元組 -32,768 至 32,767 (帶正負號)
String (可變長度) String (類別) 視實作平台而定 0 至大約二十億個 Unicode 字元
UInteger

UInt32

4 個位元組 0 至 4,294,967,295 (不帶正負號)
ULong UInt64 8 個位元組 0 到18,446,744,073,709,551,615 (1.8...E+19 †) (不帶正負號)
User-Defined (結構) (繼承自 ValueType) 視實作平台而定 結構的每個成員都有由其資料型別所決定的範圍,與其他成員的範圍無關
UShort UInt16

2 個位元組

0 至 65,535 (不帶正負號)

 

變數型別的使用:

  1: '型別為Boolean的flag變數=True
  2: Dim flag As Boolean=True
  3: 
  4: '型別為Byte的age變數=225
  5: Dim age As Byte=255
  6: 
  7: '型別為Char的city變數=Taiwan
  8: Dim city As Char="Taiwan"
  9: 
 10: '型別為Date的birthday變數,
 11: '設定的方法為--->#month/day/yyyy#
 12: Dim birthday As Date=#12/1/1983#
 13: 
 14: '型別為Decimal的distance變數=219121000
 15: Dim distance As Decimal=219121000
 16: 
 17: '型別為Double的Temperature變數=30.5
 18: Dim Temperature As Double=30.5
 19: 
 20: '型別為Integer的score變數=100
 21: Dim score As Integer=100
 22: 
 23: '型別為Long的high變數=11889900
 24: Dimhigh As Long=11889900
 25: 
 26: '型別為Short的salary變數=10000
 27: Dim salary As Short=10000
 28: 
 29: '型別為Single的variation變數=0.05
 30: Dim variation As Single=0.05
 31: 
 32: '型別為String的MyName變數=VB
 33: Dim MyName As String="VB"

alyoou 發表在 痞客邦 留言(0) 人氣()

訊息

MsgBox()函數可以顯示訊息視窗,提供使用者錯誤訊息或是非題的選擇。

例如:確認操作,函數的語法如下所示:

MsgBox(提示訊息, [樣式, 視窗標題])

image

MsgBox("Hello", vbOK, "測試")

常數

OK

1

Cancel

2

Abort

3

Retry

4

Ignore

5

Yes

6

No

7

MsgBoxStyle 列舉值

成員

說明

OKOnly

0

僅顯示 [確定] 按鈕。

OKCancel

1

顯示 [確定] 和 [取消] 按鈕。

AbortRetryIgnore

2

顯示 [中止]、[重試] 和 [忽略] 按鈕。

YesNoCancel

3

顯示 [是]、[否] 和 [取消] 按鈕。

YesNo

4

顯示 [是] 和 [否] 按鈕。

RetryCancel

5

顯示 [重試] 和 [取消] 按鈕。

Critical

16

顯示 [重大訊息] 圖示。

Question

32

顯示 [警告查詢] 圖示。

Exclamation

48

顯示 [警告訊息] 圖示。

Information

64

顯示 [資訊訊息] 圖示。

DefaultButton1

0

第一個按鈕為預設值。

DefaultButton2

256

第二個按鈕為預設值。

DefaultButton3

512

第三個按鈕為預設值。

ApplicationModal

0

應用程式是強制回應的。 使用者必須在繼續使用目前應用程式之前先回應訊息方塊。

SystemModal

4096

系統是強制回應的。 所有的應用程式都會暫止,直到使用者對訊息方塊做出回應時為止。

MsgBoxSetForeground

65536

將訊息方塊視窗指定為前景視窗。

MsgBoxRight

524288

文字靠右對齊。

MsgBoxRtlReading

1048576

指定在希伯來文或阿拉伯文的系統上,文字應該以從右到左的書寫方式呈現。

對話方塊

InputBox對話方塊不同於MsgBox訊息視窗是一種「是非」選擇,它可以彈出對話方塊,讓使用者輸入資料,在功能上如同單行文字方塊控制項。

InputBox()函數的語法如下所示:

InputBox(提示訊息, [標題文字, 預設值, 位置x, 位置y])

  1: Dim strName As String
  2: strName = InputBox("請輸入姓名?", "輸入")
image

alyoou 發表在 痞客邦 留言(0) 人氣()

按鈕控制項是表單執行功能的使用介面。

image

常用屬性

屬性

說明

Name

控制項名稱

Text

按鈕的標題文字

TextAlign

標題文字的對齊方式,共有井字形的9個位置可供選擇

Image

指定按鈕圖片,如果同時使用Text和Image屬性,文字和圖片會重疊,請調整ImageAlign和TextAlign屬性

ImageAlign

圖片按鈕的顯示位置

FaltStyle

指定按鈕樣式,也就是游標移至按鈕上時的顯示樣式,可以是Flat(平面按鈕)、Popup(平面按鈕,滑鼠經過時成為立體)、Standard(立體3D按鈕,預設值)和System(使用作業系統的按鈕樣式)

Enable

按鈕是否有作用,預設值True為有作用,False為沒有作用,此時按鈕標題文字會成為灰色。

Visible

顯示或隱藏控制項,預設值True顯示,False為隱藏

alyoou 發表在 痞客邦 留言(0) 人氣()