VB可視化界面設計.ppt
《VB可視化界面設計.ppt》由會員分享,可在線閱讀,更多相關《VB可視化界面設計.ppt(78頁珍藏版)》請在裝配圖網(wǎng)上搜索。
第2章VB可視化界面設計 主講 XXXXTEL XXXX 2 第2章VB可視化界面設計 2 1導學案例2 2面向?qū)ο蠡镜母拍? 3窗體和基本控件2 4綜合應用2 5擴展與提高 3 2 1導學案例 例2 1 編一個大小寫轉(zhuǎn)換的程序 單擊 轉(zhuǎn)換為小寫 按鈕把左邊文本框輸入的字符串中的字母全部轉(zhuǎn)換為小寫 單擊 轉(zhuǎn)換為大寫 按鈕把左邊文本框輸入的字符串中的字母全部轉(zhuǎn)換為大寫 轉(zhuǎn)換結(jié)果在右邊文本框中顯示 運行界面如下圖所示 4 設計步驟如下 1 界面設計第一步 改變窗口標題名 實現(xiàn)方法是把窗體的Caption屬性設置為 大小寫轉(zhuǎn)換 第二步 在窗體上畫兩個文本框 分別用于接收用戶輸入的原始字符串和顯示轉(zhuǎn)換后的字符串 第三步 在窗體上畫兩個標簽用于顯示提示信息 設置它們的Caption屬性分別為 原始字符串 和 轉(zhuǎn)換后的字符串 第四步 在窗體上畫三個命令按鈕 設置它們的Caption屬性分別為 轉(zhuǎn)換為小寫 轉(zhuǎn)換為大寫 和 退出 5 2 編寫事件過程代碼如下 PrivateSubCommand1 Click Dimf c 使用變量f Text1 Textc LCase f Text2 Text cEndSubPrivateSubCommand2 Click Text2 Text UCase Text1 Text 不使用變量 直接使用文本框EndSubPrivateSubCommand3 Click EndEndSub 6 說明 界面設計目的就是使計算機能與用戶進行如下交流 顯示相關信息和程序運行的結(jié)果 接收用戶輸入的數(shù)據(jù)和命令 在VB中 窗體是最基本的對象 一個應用程序都包含有窗體對象 控件也是VB的對象 它們和窗體是應用程序的 積木塊 共同構(gòu)成用戶界面 7 本例中用到幾個常用界面元素及其作用 1 窗體Form 窗體是任何一個應用程序必不可少的對象 因為窗體是其他對象的載體 各類控件對象必須建立在窗體上 窗體就如一塊 畫布 是所有控件的容器 用戶可以根據(jù)自己的需要利用工具箱上的控件在 畫布 上 畫 界面 2 標簽Label的作用是顯示信息 在例2 1中分別顯示 原始字符串 和 轉(zhuǎn)換后的字符串 的提示信息 讓用戶對界面的操作更加明了 3 文本框Text用于顯示和接收數(shù)據(jù) 如例2 1中左邊的文本框Text1用于接收用戶輸入要轉(zhuǎn)化的字符串 右邊的文本框Text2顯示轉(zhuǎn)化后的字符串 4 命令按鈕Command用于驅(qū)動相關命令 事件過程代碼 的執(zhí)行 例如 在例2 1中單擊 退出 按鈕時驅(qū)動事件過程代碼End的執(zhí)行 結(jié)束程序的運行 8 2 2面向?qū)ο蠡镜母拍?2 2 1對象對象是客觀世界中的事物或人們頭腦中的各種概念在計算機程序中的抽象表示 或者說 是現(xiàn)實世界中個體的數(shù)據(jù)抽象模型 是面向?qū)ο蟪绦蛟O計的基本元素 一本書 一家圖書館 一輛汽車等都是一個對象 一份報表 一個賬單也是一個對象 可見 世界上的各個事物都是由各種 對象 組成的 任何事物都是對象 是某一個對象類的一個實例 每個對象都有自己的特征 行為和發(fā)生在該對象上的一切活動 如以某個 學生 作為對象 該對象具有姓名 學號 性別 身高 體重 年齡等特征 具有學習 行走 睡覺等行為 以及外界作用在 學生 對象上的各種活動 如上課鈴響 放學等 9 2 2 2屬性 屬性是一個對象的特性 不同的對象有不同的屬性 VB程序中的對象都有許多屬性 它們是用來描述和反映對象特征的參數(shù) 例如 控件名稱 Name 標題 Caption 文本 Text 顏色 Color 字體 Font 是否可見 Visible 等屬性決定了對象展現(xiàn)給用戶的界面具有什么樣的外觀及功能 同類對象的屬性是一樣的 也就是具有相同的屬性 如人 具有相同的屬性 區(qū)別不同的人 也就是不同的對象 就在于屬性值的不同 10 對象屬性的設置 除了用屬性窗口設置對象屬性外 也可以在程序中用程序語句設置 一般格式如下 對象名 屬性名 屬性值例如 給一個對象名為Command1的命令按鈕的Caption屬性賦值為 確定 其在程序代碼中的書寫形式為 Command1 Caption 確定 11 2 2 3事件 事件過程和事件驅(qū)動 VB是采用事件驅(qū)動編程機制的語言 傳統(tǒng)編程使用的是面向過程 按順序進行的機制 這種編程方式的缺點是寫程序的人總是要關心什么時候發(fā)生什么事情 而在事件驅(qū)動編程中 程序員只要編寫響應用戶動作的程序 如選擇命令 移動鼠標等 而不必考慮按精確次序執(zhí)行的每個步驟 12 1 事件 對于對象而言 事件 Event 就是VB預先設置好的能夠被對象識別的動作 不同的對象能夠識別的事件不一樣 同一事件 作用于不同的對象 就會引發(fā)不同的響應 產(chǎn)生不同的結(jié)果 例如 在學校 教學樓的鈴聲是一個事件 教師聽到鈴聲就要開始講課 向?qū)W生傳授知識 學生聽到鈴聲 就要準備上課 接受知識 若行政人員不受影響 就可不予響應 在VB中 系統(tǒng)已為每個對象預先定義好了一系列的事件 例如Click 單擊 DbClick 雙擊 Load 裝入 MouseMove 移動鼠標 Change 改變 等 13 2 事件過程 對象響應某個事件后所執(zhí)行的操作通過一段程序代碼來實現(xiàn) 這樣的一段程序代碼叫做事件過程 EventProcudure 一個對象可以識別一個或多個事件 因此可以使用一個或多個事件過程對用戶或系統(tǒng)的事件做出響應 雖然一個對象可以擁有許多事件過程 但并不需要為每一個事件都編寫程序 僅當需要時才在相應的事件過程中填寫代碼 在程序中使用多少事件過程 要由設計者根據(jù)程序的具體要求來確定 14 VB事件過程的一般格式如下 PrivateSub對象名稱 事件名稱 參數(shù)列表 事件響應程序代碼 EndSub 15 3 事件驅(qū)動 VB是事件驅(qū)動程序設計方式 程序執(zhí)行后系統(tǒng)等待某個事件的發(fā)生 然后去執(zhí)行處理此事件的事件過程 待事件過程執(zhí)行完后 系統(tǒng)又處于等待某事件發(fā)生的狀態(tài) 這程序員只需要編寫響應用戶動作的程序 如選擇命令 移動鼠標等 而不必考慮按精確次序執(zhí)行的每個步驟 用戶對事件驅(qū)動的順序決定了代碼執(zhí)行的順序 因此應用程序每次運行所經(jīng)歷的代碼路徑可能不同 16 對象 事件和事件過程之間的關系如下圖所示 17 2 2 4方法 方法就是控件所能做的行動 就象人一樣 唱歌 跳舞都是人的行動 而屬性就類似于人的外貌特征 方法是附屬于對象的行為和動作 也可以理解為指使對象動作的指令 面向?qū)ο蟮某绦蛟O計語言 為程序設計人員提供了一種特殊的過程 稱為方法供用戶直接調(diào)用 這給用戶的編程帶來了很大的方便 18 對象方法調(diào)用格式為 對象 方法 參數(shù)列表 例如 Form1 Print Goodmorning 可以在名為 Form1 的窗體上顯示字符串 Goodmorning 在VB中 打印機的對象名為Printer 如果執(zhí)行 Printer Print Goodmorning 則在打印機上打印出字符串 Goodmorning 上面兩條指令使用的是同一個方法 但由于對象不同 執(zhí)行操作的設備也不一樣 在調(diào)用方法時 可以省略對象名 在這種情況下 VB所調(diào)用的方法作為當前對象的方法 一般把當前窗體作為當前對象 19 2 2 5控件 1 控件的命名就是窗體或控件的Name屬性值 一般情況下 窗體和控件都有默認值 如Form1 Command1 Text1等 2 控件的畫法3 控件的基本操作 選擇 復制和刪除 縮放和移動和多個控件的對齊與調(diào)整4 控件屬性設置 20 2 3窗體和基本控件 2 3 1控件的公共屬性Name屬性Caption屬性Enable屬性Visible屬性Left Top Height Width屬性BackColor ForeColor屬性FontName FontSize FontBold FontItalic FontStrikethru FontUnderline屬性Font對象屬性MousePointerMouseIcon屬性 21 2 3 2窗體 一個窗體對應一個窗體模塊 一個應用程序包含一個或多個窗體模塊 VB的窗體結(jié)構(gòu)同Windows環(huán)境下的窗口十分類似 在程序運行前 即設計階段 稱為窗體 程序運行后也可以稱為窗口 窗體由5部分組成 如圖2 6所示 22 23 1 窗體主要屬性 1 Caption屬性 2 Picture屬性 3 MaxButton MinButton最大 最小化按鈕屬性 4 Icon圖標和ControlBox控制菜單框?qū)傩?5 BorderStyle屬性 24 2 窗體事件 1 Click 單擊 事件 2 Load 裝入 事件3 窗體的方法 1 Print方法 2 Move方法 3 Cls方法 25 例2 2 窗體的Click DblClick和Load事件以及Cls Print方法和相關屬性的使用 運行界面如圖2 7所示 26 屬性設置 在屬性窗口中對窗體的MaxButton和MinButton的值都設為False Picture屬性值設置為學校圖標圖片Gxgxy1 bmp文件 27 例2 2程序代碼如下 PrivateSubForm Click Caption 鼠標單擊 Picture LoadPicture App Path gxgxy2 bmp 加載圖片Print 歡迎使用VB EndSubPrivateSubForm DblClick ClsCaption 鼠標雙擊 Picture LoadPicture 刪除圖片Print 結(jié)束使用VB EndSub 28 例2 2程序代碼如下 PrivateSubForm Load FontSize 40FontBold TrueCaption 裝入圖片 EndSub 29 說明 1 App Path表示裝入的圖片文件與應用程序在同一個文件夾 若運行時無該文件 系統(tǒng)會顯示 文件未找到 的信息 用戶可通過查找文件的方法 并將所需文件復制到應用程序所作的文件夾 2 屬性或方法前省略了對象 表示默認屬性或方法作用于當前窗體對象 3 MaxButton和MinButton屬性只能在屬性窗口設置 4 為了在Form Load 事件中利用Print方法在窗體上顯示文字 必須將Form1窗體的AutoRedraw屬性設置為True 30 2 3 3命令按鈕控件CommandBotton 命令按鈕主要屬性 1 Caption屬性表示按鈕上顯示的文字 如果某個字母前加入 則程序運行時標題中的該字母帶下劃線 帶有下劃線的字母就成為快捷鍵 當用戶按下Alt 該快捷鍵 便可激活并操作該按鈕 例如 在對某個按鈕設置其Caption屬性時輸入 OK 程序運行時就會顯示OK 如圖2 8 當用戶按下Alt O快捷鍵時便可激活Command1 Click事件 31 2 Style屬性 表示按鈕樣式 0 Standard 默認 標準風格的命令控件 它既不支持背景顏色BackColor 也不支持圖片屬性Picture 按鈕上不能顯示圖形 1 Graphical 圖形顯示 風格控件 它既能設置BackColor 也能設置Picture屬性 按鈕上可以顯示圖形也能顯示文字 3 Picture屬性 設置按鈕上顯示的圖形文件 bmp和 ico 為了使用這個屬性 必須把Style屬性值必須設置為1 否則Picture屬性無效 4 ToolTipText屬性 設置按鈕的提示文本 按鈕若是圖形 當運行時鼠標指向該按鈕就加以文字提示 32 2 命令按鈕的常用事件命令按鈕的常用事件是Click事件 3 命令按鈕的方法命令按鈕的方法主要有SetFocus 該方法是把光標移到指定的命令按鈕上 33 2 2 4標簽控件Label 標簽主要屬性 1 AutoSize屬性 決定Label控件是否調(diào)整自己的大小來適應文本 True 自動調(diào)整大小 False 保持原設計的大小 正文若太長自動剪掉 2 WordWrap屬性 當一行文本過長時自動換行 3 BackStyle屬性 背景樣式 0 Transparent 透明顯示 控件后面若有其他控件均可顯示出來 1 Opaque 不透明 此時可為控件設置背景顏色 34 標簽主要屬性 4 BorderStyle屬性 邊框樣式 0 None 控件周圍沒有單邊框 1 FixedSingle 控件帶有單邊框 5 Alignment屬性控件上標題 Caption 對齊方式 其中 0 LeftJustify 左對齊 1 RightJustify 右對齊 2 Center 居中 35 2 標簽的方法 標簽控件支持Move方法 用于實現(xiàn)標簽的移動 例如 設窗體上有一個標簽控件Label1 運行時 單擊該標簽控件 使該標簽控件向右移動500twip 可以通過如下代碼實現(xiàn) PrivateSubLabel1 Click Label1 MoveLabel1 left 500EndSub 36 3 標簽的事件 標簽經(jīng)常響應的事件有 單擊 Click 雙擊 DbleClick 和改變 Change 但實際上標簽僅起到在窗體上顯示文字作用 因此 一般不需要編寫事件過程 37 例2 3 編寫一個如圖2 10所示的簡易的鍵盤指法練習程序 單擊 開始 按鈕 進行指法練習 同時 開始 按鈕變?yōu)?結(jié)束 按鈕 字母在屏幕上向上移動 輸入正確則會消失 同時隨機產(chǎn)生新的字母 要求能統(tǒng)計正確率 擊鍵次數(shù)和所用的時間 38 1 界面設計 在窗體上添加4個標簽 用于在屏幕上同時顯示4個小寫字母 1個命令按鈕用于控制指法練習的開始和結(jié)束 2個計時器 一個用于隨機產(chǎn)生字母和控制字母在窗體中移動 另一個用于計時 39 2 程序代碼如下 Dimm n t PrivateSubCommand1 Click IfCommand1 Caption 開始 ThenForm1 Clst 0Timer1 Enabled TrueTimer2 Enabled TrueCommand1 Caption 結(jié)束 ElseCommand1 Caption 開始 Timer1 Enabled FalseTimer2 Enabled FalseIfm 0ThenPrint 正確率為 n m 100 Print 擊鍵次數(shù) m 次 共用時 t 秒 EndIfEndSub 40 PrivateSubCommand2 Click EndEndSubPrivateSubForm KeyPress KeyAsciiAsInteger m m 1 統(tǒng)計擊鍵次數(shù)IfChr KeyAscii Label1 CaptionThenLabel1 Caption n n 1EndIfIfChr KeyAscii Label2 CaptionThenLabel2 Caption n n 1EndIfIfChr KeyAscii Label3 CaptionThenLabel3 Caption n n 1EndIfIfChr KeyAscii Label4 CaptionThenLabel4 Caption n n 1EndIfEndSub 41 PrivateSubTimer1 Timer RandomizeIfLabel1 Caption ThenLabel1 Top Form1 ScaleHeightLabel1 Caption Chr CInt Rnd 26 97 隨機產(chǎn)生一個小寫字母ElseLabel1 Top Label1 Top 20EndIfIfLabel2 Caption ThenLabel2 Top Form1 ScaleHeightLabel2 Caption Chr CInt Rnd 26 97 隨機產(chǎn)生一個小寫字母ElseLabel2 Top Label2 Top 20EndIf 42 IfLabel3 Caption ThenLabel3 Top Form1 ScaleHeightLabel3 Caption Chr CInt Rnd 26 97 ElseLabel3 Top Label3 Top 20EndIfIfLabel4 Caption ThenLabel4 Top Form1 ScaleHeightLabel4 Caption Chr CInt Rnd 26 97 ElseLabel4 Top Label4 Top 20EndIfIfLabel1 Top 0ThenLabel1 Top Form1 ScaleHeightIfLabel2 Top 0ThenLabel2 Top Form1 ScaleHeightIfLabel3 Top 0ThenLabel3 Top Form1 ScaleHeightIfLabel4 Top 0ThenLabel4 Top Form1 ScaleHeightEndSub 43 PrivateSubTimer2 Timer t t 1 計算練習時間EndSub 44 2 3 5文本框控件TextBox 所謂人機對話 就是計算機能獲知用戶給它的信息 同時 它也能作出相應的反饋 對于前者 我們除了用鼠標向計算機發(fā)出命令外 也常需要以鍵盤向計算機輸入一些內(nèi)容 如鍵入用戶的姓名 年齡 性別等 文本框被用來顯示用戶輸入的信息 是Windows操作系統(tǒng)下進行人機對話的常用元素 在VB編程中 文本框是一個文本編輯區(qū)域 類似于一個簡單的文本編輯器 可以在這個區(qū)域中輸入 編輯 修改和顯示文本 45 1 文本框主要屬性 1 Text屬性 設置文本框中顯示的內(nèi)容 2 MultiLine屬性 設置控件是否可以接受多行文本 False 默認值 在文本框中只能輸入單行文本 True時 可以使用多行文本 即在文本框中輸入或輸出文本時可以換行 并在下一行接著輸入或輸出 按Ctrl Enter鍵可以插入一個空行 3 ScrollBars屬性 設置控件是否具有水平或垂直滾動條 0 文本框中沒有滾動條1 只有水平滾動條2 只有垂直滾動條3 同時具有水平和垂直滾動條 注意 當MultiLine屬性為True時 它才起作用 此外 當在文本框中加入水平滾動條 或同時具有水平和垂直滾動條 后 文本框中文本的自動換行功能將不起作用 只能通過回車鍵或Ctrl Enter鍵換行 46 1 文本框主要屬性 4 PassWordChar屬性以特定的字符來代替控件中的文本字符 這個屬性很適合設置密碼對話框 5 Locked屬性設置文本框內(nèi)容在運行時是否可以被用戶編輯 當設置值為False 默認值 時 可以編輯文本框中的文本 當設置值為True時 可以滾動和選擇文本框中的文本 但不能編輯 47 2 文本框的常用事件 1 Change事件當用戶向文本框輸入新的內(nèi)容 或在程序代碼中對文本框的Text屬性進行賦值從而改變了文本框的Text屬性時 將觸發(fā)Change事件 程序運行后 在文本框中每輸入一個字符 就會引發(fā)一次Change事件 2 GotFocus事件當運行用Tab鍵或鼠標單擊對象 或用SetFocus方法設置焦點時 觸發(fā)該事件 稱之為 獲得焦點 該事件適用于窗體和大部分可接受鍵盤輸入的控件 當文本框獲得焦點 即處于活動狀態(tài) 時 鍵盤上輸入的每個字符都將在該文本框中顯示出來 只有當一個文本框被激活并且可見性Visible屬性值為True時 才能接收到焦點 48 2 文本框的常用事件 3 LostFocus事件當按下Tab鍵使光標離開當前對象 或者用鼠標選擇窗體的其他對象 即焦點離開文本框時觸發(fā)該事件 稱之為 失去焦點 用Change事件和LostFocus事件過程都可以檢查文本框的Text屬性值 但后者更有效 4 KeyPress事件當在鍵盤上按下某個鍵時觸發(fā)該事件 KeyPress事件返回一個參數(shù)KeyAscii 該參數(shù)值為整數(shù) 表示所按下鍵的ASCII碼值 49 3 文本框的方法 SetFocus方法是文本框中較常用的方法 格式如下 對象 SetFocus該方法可以把焦點移動到指定的文本框中 當在窗體上建立了多個文本框后 可以用該方法把光標置于所需要的文本框 50 Label與TextBox的區(qū)別 Label控件不能由用戶直接對其進行編輯 這是它與文本框控件最顯著的區(qū)別 另外 label控件有一個BackStyle屬性 當其值為0時 控件呈透明顯示 而TextBox控件則沒有此屬性 從人機對話的角度來看 對于大多數(shù)VB程序 都用文本框控件來接受信息 而用標簽框控件來向用戶反饋信息 并不是每種控件都能夠得到焦點 如Label控件 由于它只顯示文本 而不能由用戶對其編輯操作 所以就不具有焦點 當TextBox控件獲得焦點時 所顯示的是文本框中有一個閃爍的小光標 TextBox有一個方法 SetFocus 而Label控件則沒有 51 例2 4 簡單密碼程序 程序運行界面如圖2 11所示 52 分析 在默認情況下 PasswordChar屬性值為空字符串 鍵盤上輸入的字符與文本框中顯示出來的字符是一致的 如果把該屬性設置為某個字符 例如 則無論從鍵盤上輸入什么字符 文本框中顯示的總是 這樣可以使人看不到輸入的密碼 便于保密 53 程序代碼如下 PrivateSubCommand1 Click IfText1 Text 123456 ThenText2 Text 密碼正確 繼續(xù) ElseText2 Text 密碼錯誤 重新輸入 EndIfEndSubPrivateSubCommand2 Click Text1 Text Text2 Text Text1 SetFocusEndSub 54 2 4綜合應用 例2 5 建立一個計算機等級考試報名登記界面 窗體上有5個標簽 3個文本框 3個命令按鈕 其中文本框1中輸入姓名 文本框2中輸入班級 文本框3中輸入等級 標簽5上將考生的信息全部顯示出來 程序運行界面如圖2 12所示 55 分析 本題的難點在于如何將3個文本框中的內(nèi)容連接起來 以作為標簽5的Caption屬性值 這里引入一個字符型變量str 用來存放字符串連接運算的結(jié)果 Chr 10 表示產(chǎn)生換行符 56 程序代碼如下 PrivateSubCmdClean Click Text1 Text Text2 Text Text3 Text Label5 Caption EndSubPrivateSubCmdExit Click EndEndSubPrivateSubCmdOK Click DimstrAsStringstr 姓名 Text1 Text Chr 10 班級 Text2 Text 圖2 13例2 6運行界面Chr 10 等級 Text3 TextLabel5 Caption strEndSub 57 例2 6 設計一個模擬抽獎的程序 其界面如圖2 13所示 要求單擊 開始 按鈕 則不停的隨機產(chǎn)生兩位數(shù)的數(shù)字 單擊 抽獎 按鈕 則確定中獎數(shù)字 58 分析 隨機數(shù)是通過隨機函數(shù)來產(chǎn)生的 要不斷地產(chǎn)生 則要用計時器控件來控制 設置計時器對象的Interval屬性值 定期產(chǎn)生隨機數(shù) 要實現(xiàn)單擊 開始 按鈕 再產(chǎn)生 則Timer對象的Enable屬性設置初始為False 單擊 開始 按鈕后 該屬性設置為True 單擊 抽獎 按鈕 則會再產(chǎn)生隨機數(shù) 此時表明Timer對象的Enable屬性又改為False了 59 程序代碼如下 PrivateSubCommand1 Click Timer1 Enabled TrueCommand2 Enabled TrueCommand1 Enabled FalseEndSubPrivateSubCommand2 Click Timer1 Enabled FalseText1 Text Label2 Caption Label3 Caption Label4 Caption Label5 Caption Label6 CaptionCommand2 Enabled FalseCommand1 Enabled TrueCommand3 Enabled TrueEndSub 60 程序代碼如下 PrivateSubCommand3 Click EndEndSubPrivateSubTimer1 Timer RandomizeLabel2 Caption Fix Rnd 90 10 調(diào)用隨機數(shù)函數(shù)Rnd產(chǎn)生隨機數(shù)Label3 Caption Fix Rnd 90 10Label4 Caption Fix Rnd 90 10Label5 Caption Fix Rnd 90 10Label6 Caption Fix Rnd 90 10EndSub 61 2 5擴展與提高 2 5 1窗體的進一步討論1 屬性 1 Icon屬性 設置窗體標題欄上的圖標 2 WindowsState屬性 表示窗體執(zhí)行時以什么狀態(tài)顯示 0 Normal 正常窗口狀態(tài) 有窗口邊界 1 Minimized 最小化狀態(tài) 以圖標方式運行 2 Maximized 最大化狀態(tài) 無邊框 充滿整個屏幕 62 2 窗體事件 1 Unload事件在卸載一個窗體時觸發(fā)Unload事件 Unload事件可以由用戶觸發(fā) 例如單擊窗體的關閉按鈕 將觸發(fā)Unload事件 格式如下 PrivateSubForm Unload EndSubUnload事件是與Load事件相對應的事件 Unload事件會卸載一個窗體 同時可以為用戶提供存盤等信息 63 2 Initialize事件 在窗體創(chuàng)建時發(fā)生Initialize事件 這是程序運行時發(fā)生的第一個事件 它發(fā)生在Load事件之前 Initialize事件的作用主要是初始化變量 格式如下 PrivateSubForm Initialize EndSub 64 3 Activate 活動 Deactivate 非活動 事件當窗體變成活動窗口時觸發(fā)Activate事件 而在另一個窗體變?yōu)榛顒哟翱谇坝|發(fā)Deactivate事件 通過操作可以把窗體變?yōu)榛顒哟绑w 例如單擊窗體或在程序中執(zhí)行Show方法等 4 Paint 繪畫 事件當窗體被移動或放大時 或者窗口移動時覆蓋了一個窗體時 觸發(fā)該事件 65 3 向窗體輸出數(shù)據(jù) 1 向窗體輸出數(shù)據(jù)的格式設置向窗體輸出數(shù)據(jù)的格式主要通過Format 函數(shù)確定 向窗體輸出數(shù)據(jù)的字體 大小由Font屬性項設置 也可在程序運行時 用程序代碼設置 用程序代碼設置字體和字號的格式如下 FontName 字體名 FontSize 字號 2 輸出位置確定在窗體上的輸出位置主要通過兩個系統(tǒng)變量來定位 即CurrentX和CurrentY 它們分別代表當前點的X坐標和Y坐標 在程序代碼中 分別給出CurrentX和CurrentY賦值 以定位輸出數(shù)據(jù)的起始位置 66 例2 7 建立一個窗體 單擊窗體時 在窗體上輸出兩行文字 運行結(jié)果如圖2 14所示 67 程序代碼如下 PrivateSubForm Click CurrentX 600CurrentY 600FontName 宋體 FontSize 18Print 面向?qū)ο蟪绦蛟O計 CurrentX 1000CurrentY 1500FontName 黑體 FontSize 20Print 面向?qū)ο蟪绦蛟O計 EndSub 68 2 5 2Command控件Default屬性和Cancel屬性的進一步討論 把Default設為True 則在按下回車鍵時 不論焦點處于何處 都會觸發(fā)該按鈕的Click事件 而當Cancel屬性被設為True 在按下Esc鍵時 該按鈕的Click事件發(fā)生 69 例2 8 建立一個新窗體和兩個按鈕 Name屬性分別為cmdOK和cmdCancel 把前者的Default設為True 后者的Cancel設為True Caption屬性分別為OK和Cancel 運行結(jié)果如圖2 15所示 70 程序代碼如下 PrivateSubCommand1 Click MsgBox OK按鈕被按下 vbDefaultButton1 提示 EndSubPrivateSubCommand2 Click MsgBox Cancel按鈕被按下 vbDefaultButton1 提示 EndSub 71 2 5 3TextBox控件的進一步討論 1 SelStart屬性 定義當前選擇的文本的起始位置 2 Sellength屬性 定義當前選中的字符數(shù) 當在文本框中選擇文本時 該屬性值會隨著選擇字符的多少而改變 也可以在程序代碼中把該屬性設置為一個整數(shù)值 由程序來改變選擇 該屬性及下面的SelStart SelText屬性 只有在運行期間才能設置 3 SelText屬性 選定的正文內(nèi)容 設置了SelStart和Sellength屬性后 VB會自動將設定的正文送入SelText存放 72 例2 9 建立一個簡易記事本程序 程序運行界面如圖2 16所示 分析 利用MouseMove事件決定命令按鈕的有效性 即當選中內(nèi)容 剪切 復制 按鈕有效 否則無效 73 表2 7例2 9屬性設置 74 程序代碼如下 DimstAsStringPrivateSubcmdCopy Click st Text1 SelTextEndSubPrivateSubcmdCut Click st Text1 SelTextText1 SelText cmdCopy Enabled FalsecmdCut Enabled FalsecmdPaste Enabled TrueEndSub 75 PrivateSubcmdExit Click EndEndSubPrivateSubcmdPaste Click Text1 SelText st 將st變量中的內(nèi)容插入到光標所在的位置 實現(xiàn)了粘貼EndSubPrivateSubForm Load 設置剪切 復制 粘貼按鈕無效cmdCut Enabled FalsecmdCopy Enabled FalsecmdPaste Enabled FalseEndSub 76 PrivateSubText1 MouseMove ButtonAsInteger ShiftAsInteger XAsSingle YAsSingle IfText1 SelText ThencmdCut Enabled TruecmdCopy Enabled TruecmdPaste Enabled FalseElsecmdCut Enabled FalsecmdCopy Enabled FalsecmdPaste Enabled TrueEndIf 77 PrivateSubCommand4 Click Text1 FontName 黑體 EndSubPrivateSubCommand5 Click Text1 FontSize 20EndSubPrivateSubCommand6 Click EndEndSub 78 THEEND- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關 鍵 詞:
- VB 可視化 界面設計
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權(quán),請勿作他用。
鏈接地址:http://zhongcaozhi.com.cn/p-6438122.html