VB語言第10章菜單_第1頁
VB語言第10章菜單_第2頁
VB語言第10章菜單_第3頁
VB語言第10章菜單_第4頁
VB語言第10章菜單_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第10菜單及對話框菜單及對話框都是Windows應用程序的常用部件。應用程序通過菜單為用戶提供一組命令。對話框是應用程序與用戶交互的主要途徑。

第10章

菜單及對話框菜單設計鍵盤與鼠標事件對話框通用/自定義本章主要內(nèi)容退出

窗體和大多數(shù)控件都能響應鍵盤和鼠標事件

10.1.1鍵盤事件

有三種事件處理鍵盤操作

1.KeyPress事件

2.KeyDown事件:用戶按下鍵盤上某個鍵時觸發(fā)此事件

3.KeyUp事件:用戶按下鍵盤上某個鍵后釋放時觸發(fā)此事件

10.1

鍵盤與鼠標事件

Click、DblClick、MouseMove、MouseDown和MouseUp事件當移動鼠標時發(fā)生MouseMove事件當按下鼠標任意鍵時發(fā)生MouseDown事件,放開鼠標鍵時發(fā)生MouseUp事件后三種事件可以區(qū)分鼠標的左、右、中鍵與Shift、Ctrl、Alt鍵

PrivateSub對象名_鼠標事件(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)

說明:(1)Button參數(shù)表示哪個鼠標鍵被按下或釋放。用0,1,2位分別表示鼠標的左、右、中鍵,用1或0表示被按下或釋放

(2)Shift參數(shù)表示當鼠標鍵被按下或釋放時,Shift、Ctrl、Alt鍵的按下或釋放狀態(tài)。用0、1、2位表示Shift、Ctrl、Alt鍵

(3)X,Y表示鼠標指針的當前坐標位置

210位

······左鍵右鍵中鍵

10.1.2

鼠標事件MouseMove、MouseDown或MouseUp當單擊鼠標左鍵時把按鈕的位置移動到鼠標指針的位置,單擊鼠標右鍵時把按鈕的位置移動到窗體的左上角位置(即坐標原點)。以下程序將MouseDown事件與Move方法結合起來使用。

PrivateSubForm_MouseDown(ButtonAsInteger,_ShiftAsInteger,XAsSingle,YAsSingle)IfButton=1Then'單擊鼠標左鍵時

Command1.MoveX,Y'移動到鼠標指針的位置

ElseCommand1.Move0,0'移動到窗體的左上角

EndIfEndSub例10.1

實現(xiàn)命令按鈕位置的移動例10.1

10.2菜單設計

應用程序通過菜單為用戶提供一組命令菜單一般分為兩種:下拉式菜單和彈出式菜單

10.2.1下拉式菜單

1.下拉式菜單的結構下拉式菜單基本結構包括:頂層菜單、菜單項和子菜單子菜單項子菜單提示符訪問鍵快捷鍵分隔線復選標記菜單項頂層菜單例10.1c

10.2.2

菜單編輯器

設計菜單的工具——菜單編輯器菜單編輯器分為上、下兩部分,上半部分用來設置屬性,下半部分是菜單顯示區(qū),用來顯示用戶輸入的菜單內(nèi)容。

10.2.3菜單的Click事件除分隔線以外的所有菜單元素都能識別Click事件例10.5

編一程序,進行兩個操作數(shù)的算術運算練習

設計步驟如下:

(1)創(chuàng)建應用程序的用戶界面和設置對象屬性菜單欄向用戶提供功能選擇,包括運算數(shù)的位數(shù),運算符類型(加、減、乘)和退出程序菜單設計各個菜單項名稱例10.5

(2)編寫程序代碼

OptionExplicit‘規(guī)定所有變量都要顯式聲明,見10.9.1節(jié)

Dimsel1AsInteger,sel2AsStringDimr1AsLong

PrivateSubForm_Load()sel1=0'位數(shù)標記

sel2=""'運算標記

Randomize

EndSubPrivateSubMnu11_Click()‘單擊“一位數(shù)”菜單項

sel1=1'設置位數(shù)標記

EndSubPrivateSubMnu12_Click()‘單擊“二位數(shù)”菜單項

sel1=10

EndSubPrivateSubMnu13_Click()‘單擊“三位數(shù)”菜單項

sel1=100EndSubPrivateSubMnu21_Click()‘單擊“加法”菜單項

sel2="+"'設置運算標記EndSubPrivateSubMnu22_Click()‘單擊“減法”菜單項

sel2="-"EndSubPrivateSubMnu23_Click()‘單擊“乘法”菜單項

sel2="*"EndSubPrivateSubCommand1_Click()

'"命題"按鈕單擊事件

DimaAsLong,bAsLongIfsel1=0Orsel2=""Then

MsgBox"先選擇運算數(shù)的位數(shù)和運算類型"ExitSubEndIfa=sel1+Int(9*sel1*Rnd)‘根據(jù)指定位數(shù),隨機生成操作數(shù)

b=sel1+Int(9*sel1*Rnd)Text1.Text=Str(a)+sel2+Str(b)+“=”‘根據(jù)操作數(shù)及運算類型組成算式

SelectCasesel2‘根據(jù)運算類型,求運算結果r1Case"+"r1=a+bCase"-"r1=a-bCase"*"r1=a*bEndSelectText2.Text=""Text2.SetFocusEndSub菜單操作后Sel1指定位數(shù)

=1

一位數(shù)

=10

二位數(shù)

=100

三位數(shù)Sel2指定運算類型

=“+”加法

=“-”減法

=“*”乘法PrivateSubCommand2_Click()

'"答題"按鈕單擊事件

Dimr2AsLongIfText2.Text=""Then

MsgBox"請輸入答案"ExitSubEndIfr2=Val(Text2.Text)'讀取用戶的答案

Ifr1=r2Then'判斷答案

MsgBox"正確"Else

MsgBox"錯誤"EndIfEndSubPrivateSubMnu30_Click()‘“退出”菜單命令

EndEndSub

10.2.5

彈出式菜單

彈出式菜單又稱為快捷菜單??梢愿鶕?jù)右擊鼠標時的位置彈出不同的菜單。使用VB提供的菜單編輯器,把某個菜單設置成隱藏。創(chuàng)建快捷菜單的步驟如下:

(1)使用菜單編輯器設計菜單

(2)設置頂層菜單項為不可見,即不選中菜單編輯器里的“可見”選項或在屬性窗口中設定Visible屬性為False(3)編寫與彈出式菜單相關聯(lián)的MouseUp(釋放鼠標)事件過程。格式為:

[對象]PopupMenu

菜單名[,位置常數(shù)][,橫坐標[,縱坐標]]]例10.6在例10.5的基礎上,把“位數(shù)”菜單改為快捷菜單

(1)打開例10.8的應用程序,選定窗體,然后在菜單編輯器中將“位數(shù)”菜單標題的“可見”框中的“√”取消(即不選中)

(2)增加以下的MouseUp事件過程代碼:

PrivateSubForm_MouseUp(ButtonAsInteger,_

ShiftAsInteger,XAsSingle,YAsSingle)

IfButton=2Then‘檢查是否右擊,擊左鍵為1

PopupMenumnu10

EndIf

EndSub

程序運行時,右擊窗體空白處,即會彈出快捷菜單,如圖10.12所示例10.6例10.5A

彈出式菜單10.3對話框

對話框(DialogBox)是應用程序與用戶進行交互的主要途徑。三種對話框:

(1)預定義對話框

使用函數(shù)InputBox和MsgBox來實現(xiàn)。

(2)通用對話框通用對話框是一種ActiveX控件,在使用之前,應選擇“工程”菜單中的“部件”命令先將其添加到工具箱中

(選中“MicrosoftCommonDialogControl6.0”

)

利用通用對話框能夠創(chuàng)建下列六種標準對話框(指定相應的參數(shù),P233):

打開(Open),另存為(SaveAs),顏色(Color)

字體(Font),打印機(Printer),幫助(Help)(3)用戶自定義對話框

建立一個窗體,把窗體設置成對話框特性(沒有控制菜單框、最大化及最小化按鈕,不能改變其大小,見表10.3)

在窗體上根據(jù)需要放置控件附錄使用WebBrowser控件制作一個簡易的Web瀏覽器在“部件”對話框的“控

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論