Visual Basic 输入探讨_第1页
Visual Basic 输入探讨_第2页
Visual Basic 输入探讨_第3页
Visual Basic 输入探讨_第4页
Visual Basic 输入探讨_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Visual Basic 輸入探討(04)(一) 輸入控制項輸入控制權的英文是Focus,在執行一個輸入表單時我們都希望按照我們程式的控制讓游標到指定位置,但如何做呢?一般的作法是用 Tab 鍵將輸入控制權轉移給下一個控制項。也可以用滑鼠點一下,讓某個輸入物件(文字輸入,按鈕)取得控制權。但我們也可用屬性或程式來控制。(1) 順位定位控制定位順序是依照物件(控制項)當初被建立的順序來排列,因此連續按 Tab 鍵,輸入控制項就會依照定位的順序來排列。這些定位順序被記錄在物件屬性的 TabIndex 中,它的編號從 0 開始。設計或程式執行階段都可以更改TabIndex 值,每次更改後,都會自動調

2、整它們之間的定位順序。例如:如果要在使 Text1 在程式執行後第一個先做 Text1 輸入,可改 Text1.屬性為 0 或程式中令Text1.TabIndex = 0 就可。(2) 功能鈕(command) TopLeft Height Width功能鈕(command)作為二元(開關、是非題、作用不作用)等輸入的重要物件。1、其常用屬性如下: Height :功能鈕(物件)高度功能鈕 Left :功能鈕(物件)X軸位置 Top :功能鈕(物件)Y軸位置 Width :功能鈕(物件)寬度 Name :功能鈕(物件)新名字 Caption :功能鈕(物件)顯示標題名稱(可顯示中文) Font

3、 :功能鈕(物件)顯示標題名稱的字型、大小等2、VB 程式碼內各副程式的組成結構如下: Private Sub 物件名稱_事件名稱( ) : End Sub如果物件功能鈕的名稱為 Command1 事件為按一下click則副程式組成為:(按兩下物件功能鈕出現如下副程式:) Private Sub Command1_Click( ) : End Sub3、快速鍵:在Windows 的應用程式中,常看見下列類似的功能鈕:否(N)是(Y) 上述的英文字母底下都有一底線,通常看到上述鈕,只要按<Alt +字母>就可以執行該鈕。例如:上述功能鈕知道按<Alt + Y> 或<

4、Alt + N> 就可以執行該按鈕。作法:在屬性 Caption :是&Y 或 否&Nl 如果想按 Y 或 N 直接執行就處理某項工作:可用下列程式A、 首先讓物件功能鈕發生作用(取得控制權)B、 程式寫法如下:Private Sub Command1_KeyPress(KeyAscii As Integer) Ch = Chr(Keyascii) If Ch = “c” Or Ch = “C” then 處理某項工作 End ifEnd Sub4、讓功能鈕暫時沒作用(Disabled)讓功能鈕暫時沒作用的方法(以虛線顯示)為屬性:Enabled = False (有作用

5、為 Enabled = True(預設值)例如想讓功能鈕 Command1 無法對事件作回應,其作法: Command1.Enabled = Falsel 如果使用屬性 Visible 其作法Command1.Visible = True 說明:顯現 (預設值)Command1.Visible = False 說明:不顯現且失去作用5、功能鈕的說明文字如果為了使所設計的程式更加易懂,我們可以為功能鈕加註解說明,其作法只要改變功能鈕的 ToolTipText 屬性就可:例如想讓顯示功能鈕 Command1作用(結束程式) Command1.ToolTipText = 程式執行結束範例:vb401

6、 計算機第一步:表單設計(物件、屬性)1、 先開一個新專案,將表單(Form)的屬性改為:Caption = 計算機2、 在表單上拉出一個文字(Text)物件,將屬性改為:Text = “”3、 在表單中製作 10 個數字鈕(功能鈕),為按鈕陣列,將屬性改為:Command1(0) Command1(9)Caption = 0、1、2、3、4、5、6、7、8、9 4、 在表單中製作 4 個加、減、乘、除鈕,為按鈕陣列,將屬性改為:Command2(0) Command2(3)5、 在表單中製作清除鈕與等於鈕,將屬性改為:Command3 Command4Command3.Caption = “

7、=” Command4.Caption = “Clear”6、 在表單中製作關機鈕:Command5.Caption = “關機”完成表單如下:第二步:撰寫程式Dim x As IntegerDim num As DoublePrivate Sub Command1_Click(Index As Integer) Text1.Text = Text1.Text + Str(Index)End SubPrivate Sub Command2_Click(Index As Integer) num = Val(Text1.Text) Text1.Text = "" If Ind

8、ex = 0 Then x = 1 ElseIf Index = 1 Then x = 2 ElseIf Index = 2 Then x = 3 ElseIf Index = 3 Then x = 4 End IfEnd SubPrivate Sub Command3_Click() Select Case x Case 1: Text1.Text = num + Val(Text1.Text) Case 2: Text1.Text = num - Val(Text1.Text) Case 3: Text1.Text = num * Val(Text1.Text) Case 4: Text1

9、.Text = num / Val(Text1.Text) End SelectEnd SubPrivate Sub Command4_Click() Text1.Text = "" num = 0End SubPrivate Sub Command5_Click() EndEnd Sub(3) 文字方塊(TextBox)輸入在Windows 應用程式中,標籤(label)是應用在固定在視窗某個位置的文字字串,而文書盒(Text Box)則通常應用在 Windows 的文字、數字資料等輸入與輸出文字資料。1、 常用屬性:標籤(label)與文書盒(Text Box)常用屬性

10、如Caption、Font、Height、Left、Name、Top、Width外a、 Alignment 預設情況標籤(label)與文書盒(Text Box)是向左切齊(Left Justify),可以使屬性改為向中對齊(Center)或向右切齊(Right Justify)。b、 BackColor :設定背景顏色c、 ForeColor :設定前景(文字)顏色d、 AutoSize :設定是否依照標籤文字內容調整元件大小。只適用於標籤。(Label)e、 PasswordChar :建立密碼,當在此設定某個特定字元後,未來在文書盒內輸入字元時,資料內容不變但所看到的都是特定字元。只適用

11、於文書盒。(Text)。f、 MaxLegth :設定文書盒(Text)最多可容納多少個字元。g、 MultiLine :設定文書盒是否允許多列資料存在。True 多列2、 快速鍵應用:在視窗中常常看到 :大小(S)我們可以使用 Alt + S 來使控制游標到其右邊的文書盒(Text)作法:a、先建立標籤物件,在屬性Caption :大小&S b、然後立即建立文書盒,在屬性Text = “”即可。3、 文書盒按鍵相關事件文書盒(Text)是最常用的輸入裝置,由於文書盒(Text)和鍵盤有密切的關連性,和文書盒相關的事件有 KeyDown、KeyUp、KeyPress、Change。按鍵

12、後每一個鍵都有相對應的 Ascii 碼(A:65),不但先發生KeyDown事件,而且會發生KeyPress事件,然後進入Windows 系統內部,讓系統在文字方塊中出現該字元,接著發生Change事件,最後才是KeyUp事件。KeyPress事件中 KeyAscii 所表現參數是按鍵的 Ascii 碼。範例:(vb402) 溫度轉換第一步:表單設計(物件、屬性)1、 先開一個新專案,將表單(Form)的屬性改為:Caption = 溫度轉換2、 建立標籤label1,屬性Caption :華式溫度&F3、 在標籤1旁邊建立文書盒Text1,屬性 Text = “”,Tabindex

13、= 04、 再建立標籤label2,屬性Caption :攝式溫度&C5、 在標籤2旁邊建立文書盒Text2,屬性 Text = “”6、 建立命令鈕 Command1,屬性Caption :結束 華式溫度F 攝氏溫度C第二步:撰寫程式Private Sub Command1_Click() EndEnd SubPrivate Sub Text1_Change() Text2.Text = (5 / 9) * (Text1.Text - 32)End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii <&

14、gt; 13 Then If KeyAscii < Asc("0") Or KeyAscii > Asc("9") Then KeyAscii = 0 Beep End If Else End IfEnd Subl 如果按鍵本身沒有 Ascii 碼(如:Alt 、Shift 、F5),則按了該鍵就只會發生 KeyDown 與 KeyUp 兩個事件,且不會在文字方塊出現任何字元:KeyDown 與 KeyUp 兩個事件會產生 KeyCode 與 Shift 碼例:偵測使用者是否按了 F4 鍵,是的話就關閉程式。Private Sub Text1

15、_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyF4 Then End End Sub我們可用三個變數來記錄是否使用者按下 Shift 、Ctrl 、 Alt ShiftDown = (Shift And vbShiftMask)> 0 CtrlDown = (Shift And vbCtrlMask)> 0 AltDown = (Shift And vbAltMask)> 0例:偵測使用者是否同時按了 Shift + Ctrl + Alt + F6 鍵,是的話就顯示有人按了Shift + Ct

16、rl + Alt + F6 鍵Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) Dim ShiftDown As Integer, AltDown As Integer, CtrlDown As Integer ShiftDown = (Shift And vbShiftMask)> 0 CtrlDown = (Shift And vbCtrlMask)> 0 AltDown = (Shift And vbAltMask)> 0 If ShiftDown And CtrlDown And AltDo

17、wn And (KeyCode = vbKeyF6) Then Text1.text = “有人按了Shift + Ctrl + Alt + F6 鍵” End If End Sub4、 GotFocus 與 LostFocus當我們用 Tab 鍵或用滑鼠將輸入控制權轉移到文字方塊,會讓它發生 Gotfocus 事件。由於應用程式常常會有什麼時候只能輸入什麼資料,我們可以在GotFocus 事件程序中將提示標籤顯示出來。例:vb403 自動進入中文模式第一步:表單設計(物件、屬性)1、 先開一個新專案,將表單(Form)的屬性改為:Caption = 自動進入中文模式2、 建立標籤label1

18、,屬性Caption :員工號碼:3、 在標籤1旁邊建立文書盒Text1,屬性 Text = “”,Tabindex = 04、 再建立標籤label2,屬性Caption :員工姓名:5、 在標籤2旁邊建立文書盒Text2,屬性 Text = “”6、 再建立標籤label3,屬性Caption :電話:7、 在標籤3旁邊建立文書盒Text3,屬性 Text = “”第二步:撰寫程式Private Sub Text1_KeyPress(KeyAscii As Integer)End SubPrivate Sub Text2_GotFocus() SendKeys " "E

19、nd SubPrivate Sub Text2_KeyPress(KeyAscii As Integer)End SubPrivate Sub Text2_LostFocus() SendKeys " "End Sub下列程式示範它會限制輸入資料只能介於 1 99 之間,如果輸入錯誤,會自動清除。Private Sub Text1_LostFocus( ) Num = val(Text1.text) If Num < 1 Or Num > 99 Then Text1.text = “” Beep End If End Sub(二) 讀取輸入資料1、Visual

20、Basic 提供了輸入函數可供我們讀取從鍵盤內輸入的資料,如下所示: InputBox (提示訊息,標題,預設值,xpos,ypos)例: names = InputBox(“輸入你的名字 :”) 則執行上述命令時將可看到輸入輸入你的名字 :對話方塊。如果有輸入,按確定後所輸入的資料將傳回原程式 names 變數內。例: names = InputBox(“請輸入姓名:”, ”嘉師”,”王大有”) 執行上述命令時將可看到輸入輸入你的名字 :與預設值王大有等對話方塊,如果有輸入,按確定後所輸入的資料將傳回原程式 names 變數內。2、對話方塊的輸出欲執行對話方塊的輸出可以使用 MsgBox 指

21、令或函數MsgBox msg ,type ,title 、指令格式MsgBox (msg ,type ,title) 、函數格式Msg , type ,title 格式符號常數 值 意義vbOKOnly 0 只顯示<確定>按鈕vbOKCancel 1 顯示<確定>和<取消>按鈕vbAbortRetryIgnore 2 顯示<失敗>、<重試>和<忽略>按鈕vbRetryCancel 3 顯示<是>、<否>和<取消>按鈕vbYesNo 4 顯示<是>、<否>按鈕vbR

22、etryCancel 5 顯示<重試>和<取消>按鈕符號常數 值 圖案vbCritical 16 XvbQuestion 32 ?vbExclamation 48 !vbInformation 64 I例:MsgBox “密碼錯誤!” MsgBox “密碼錯誤!”,48,”再輸入一次” 或 num = MsgBox (“ 你要繼續做嗎?”,35,”做完本題了”)(三) 副程式或函數的設計Visual Basic 的程序(副程式)包含 Sub 程序與 Function 程序。這兩個的不同點運算式內無法呼叫 Sub 程序。 Sub 程序的呼叫必須是單獨的陳述式,因為它沒有傳

23、回值。而Function 程序一定有傳回值。Sub 程序可以用改變傳遞給它的參數值來獲得運算結果。1、 呼叫 Sub 程序(1) Call MyProc (FirstArgument, SecondArgument)(2) MyProc FirstArgument, SecondArgument2、 呼叫Function 程序(1) GetVal = MyFun(Arguments)(2) Call Myfun(Arguments) 或Myfun Arguments例:X = Val(text1.text) 3、編輯自己的Sub副程式作法A:1、先進入 Form_Load( )副程式視窗 Pr

24、ivate Sub Form_Load( ) : End Sub2、 在 End Sub 下兩行輸入 Sub Test( )後按<Enter>鍵3、 出現 Sub Test( ) : End Sub4、 這個普通副程式在物件欄屬一般,而它的名稱則會被記載在程序欄位內。5、 需要使用時則用 Call Test( ) 就可作法 B:1、執行 VB 主視窗、工具功能表的新增程序選項,出現對話方塊。2、 從型態欄位內,可以選副程式(Sub)、函數(Function)、屬性(Property)或事件(Event)。然後在名稱欄位輸入副程式或函數名稱。3、 在範圍欄位內選公用(Public)或私用(Private)。後按確定即可。l 聲音播放:1、sndPlaySound 是一個 Windows API (Aplllication Programming Interface)函數,主要的功能是用於播放 Wav 聲音,在使用這個函數前我們需要在一般、宣告下宣告:Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoun

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论