




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第7章用戶界面設計
7.1常用控件7.2通用對話框7.3菜單設計7.4多重窗體
7.5鼠標和鍵盤7.6綜合應用7.1常用控件
在VB中控件大致分為三類:標準控件:在工具箱中默認顯示ActiveX控件:是擴展名為.ocx的獨立文件,是VB工具箱的擴充部分可插入對象:是Windows應用程序的對象添加刪除ActiveX控件ActiveX控件在使用前需要執(zhí)行“工程”菜單下的“部件”命令,在打開的“部件”對話框中選擇“控件”標簽,然后選擇需要加入工具箱中的ActiveX控件名,單擊“確定”即可將控件加入到工具箱中7.1.1單選按鈕、復選框和框架1.單選按鈕(OptionButton)單選按鈕以組的形式出現(xiàn),只允許選擇一項重要屬性
Caption屬性按鈕上顯示的文本Value屬性表示單選按鈕的狀態(tài):
True——被選定
False——未被選定重要事件Click事件:單擊后使Value屬性為TrueSetFocus方法是單選鈕控件最常用的方法,可以在代碼中通過該方法將Value屬性設置為TrueOption2.SetFocus用于給定選項的選取,可以同時選取多項(復選)Value屬性值為整型,表示復選框的狀態(tài):0--vbUnchecked未選定1--vbChecked被選定2--vbGrayed灰色,并顯示一個選中標記Caption:復選框標題文字重要事件Click事件:用戶單擊后,復選框自動改變狀態(tài)2.復選框(CheckBox)
3.框架(Frame)
作為容器,用于放置控件,可以整體移動。主要用于單選鈕的分組,一組中的單選鈕互斥,與另一組單選鈕無關Caption屬性,給出框架的標題注意:1.必須先有框架,再向框架中放入其他控件2.若用框架將現(xiàn)有的控件分組,則選定控件剪切、選中框架再粘貼框架可以響應Click和DoubleClick事件,但一般不需要編寫事件過程
框架設Caption為"字體"例:窗體上有一個名稱為Frame1的框架,若要把框架上顯示的“Frame1”改為漢字“框架”下面正確的語句是A)Frame1.Name="框架“B)Frame1.Caption="框架“C)Frame1.Text="框架“D)Frame1.Value="框架"例:窗體上畫兩個單選按鈕(Option1、Option2,標題分別為“宋體”“黑體”)1個復選框(Check1,標題為“粗體”)1個文本框(Text1,Text屬性為“改變文字字體”),程序運行后要求“宋體”單選按鈕和“粗體”復選框被選中,則能實現(xiàn)的語句是:A)Option1.Value=FalseCheck1.Value=TrueB)Option1.Value=TrueCheck1.Value=0C)Option1.Value=FalseCheck1.Value=2D)Option1.Value=TrueCheck1.Value=1例7.1PrivateSubOption1_Click()Text1.FontName="宋體"EndSubPrivateSubOption2_Click()Text1.FontName="黑體"EndSubPrivateSubCheck1_Click()Text1.FontBold=NotText1.FontBoldEndSubPrivateSubCheck2_Click()Text1.FontItalic=NotText1.FontItalicEndSubPrivateSubCheck3_Click()Text1.FontStrikethru=NotText1.FontStrikethruEndSubPrivateSubCheck4_Click()Text1.FontUnderline=NotText1.FontUnderlineEndSub例7.2對象屬性Frame1Frame2Check1計算機Check2操作系統(tǒng)Option1Windows2000Option2Windows98Combo1聯(lián)想方正蘋果Text1Label1品牌:Label2數量:Command1OKList1PrivateSubForm_Load()Combo1.Enabled=FalseText1.Enabled=FalseOption1.Enabled=FalseOption2.Enabled=FalseEndSubPrivateSubCheck1_Click()Combo1.Enabled=NotCombo1.EnabledText1.Enabled=NotText1.EnabledEndSubPrivateSubCheck2_Click()Option1.Enabled=NotOption1.EnabledOption2.Enabled=NotOption2.EnabledEndSubPrivateSubCombo1_LostFocus()flag=FalseFori=0ToCombo1.ListCount-1IfCombo1.List(i)=Combo1.TextThenflag=TrueExitForEndIfNextiIfNotflagThenCombo1.AddItemCombo1.TextEndIfEndSubPrivateSubCommand1_Click()IfCheck1.Value=1ThenList1.AddItemCombo1.TextList1.AddItemText1EndIfIfCheck2.Value=1ThenIfOption1.ValueThenList1.AddItem"Windows2000"ElseList1.AddItem"Windows98"EndIfEndIfEndSub7.1.2滾動條和進度條
滾動條(ScrollBar)通常附在窗體上協(xié)助觀察數據或確定位置,也可作為數據輸入工具進度條(ProgressBar)用來指示事務處理的進度滾動條屬性滾動條控件(ScrollBar)分為水平滾動(HScrollbar)和垂直滾動條(VscrollBar)Value:滑塊當前位置的值(缺省為0)Min:滑塊處最小位置的值(缺省為0)Max:
滑塊處在最大位置的值SmallChange單擊滾動條兩端的箭頭時,Value屬性(滑塊位置)增加或減少的值LargeChange單擊滾動條的空白區(qū)域時,Value屬性增加或減少的值滾動條事件(1)Change事件改變Value屬性值(滾動條內滑塊位置改變)時發(fā)生單擊滾動條兩端的箭頭或空白處將引發(fā)Change事(2)Scroll事件按水平方向或垂直方向滾動時,Scroll事件發(fā)生拖動滑塊時會觸發(fā)Scroll事件Scroll事件與Change事件的區(qū)別:當滾動條控件滾動時Scroll事件一直發(fā)生,而Change事件只是在滾動結束之后才發(fā)生一次例、窗體上有一個名稱為Hscroll1的滾動條,程序運行后,當單擊滾動條兩端的箭頭時,立即在窗體上顯示滾動塊的位置(即刻度值),能實現(xiàn)操作的過程是
A)PrivateSubHScroll1_Change()PrintHScroll1.ValueEndSubB)PrivateSubHSctroll1_Change()
PrintHScroll1.SmallChange
EndSub
C)PrivateSubHScroll1_Scroll()PrintHScroll1.ValueEndSubD)PrivateSubHScroll1_Scroll()
PrintHScroll1.SmallChange
EndSub例7.3計算0~18之間某個數階乘,數據由滾動條獲得。滾動條屬性設置:Max屬性18,Min屬性0,Value初值0
SmallChange屬性為1,LargeChange屬性為3PrivateSubHScroll1_Change()DimiAsInteger,sAsDoubles=1n=HScroll1.ValueIfn<>0ThenFori=1Tons=s*iNextiEndIfLabel2.Caption=n&"!="&sEndSub例7.4設計一個調色板應用程序,使用三個滾動條作為三種基本顏色的輸入工具。三個滾動條屬性設置:Max屬性255Min屬性0,Value初值0
SmallChange屬性為1,LargeChange屬性為25兩個按鈕,一個文本框一個標簽DimRed&,Green&,BlueAsLongPrivateSubHScroll1_Change()Red=HScroll1.ValueGreen=HScroll2.ValueBlue=HScroll3.ValueLabel1.BackColor=RGB(Red,Green,Blue)EndSubPrivateSubHScroll2_Change()Red=HScroll1.ValueGreen=HScroll2.ValueBlue=HScroll3.ValueLabel1.BackColor=RGB(Red,Green,Blue)EndSubPrivateSubHScroll3_Change()Red=HScroll1.ValueGreen=HScroll2.ValueBlue=HScroll3.ValueLabel1.BackColor=RGB(Red,Green,Blue)EndSubPrivateSubCommand1_Click()Text1.ForeColor=Label1.BackColorEndSubPrivateSubCommand2_Click()Text1.BackColor=Label1.BackColorEndSub例:設窗體上有一個名稱為HScroll1的水平滾動條,當滾動塊移動位置后,能夠在窗體上輸出移動的距離(即新位置與原位置的刻度值之差,向右移動為正數,向左移動為負數)。下面可實現(xiàn)此功能程序,請?zhí)顚?/p>
Dim
AsIntegerPrivateSubForm_Load()pos=HScroll1.ValueEndSubPrivateSubHScroll1_Change()Print
-pospos=HScroll1.ValueEndSub
HScroll1.valueposProgressBar控件
ProcessBar控件位于MicrosoftWindowsCommonControls5.0部件中,其添加到工具箱后的圖標ProcessBar控件用于:監(jiān)視一個較長操作完成的進度,它通過從左到右用一些方塊填充矩形的形式來表示操作處理的進程。屬性:Max和Min設置控件的界限Value控件執(zhí)行階段被填充的數目,直到等于Max.控件顯示的填充數是Value屬性與Max和Min屬性之間的比值(如:Max=5和Min=0,Value=2,那么就填充五分之二)在對ProgressBar編程時,必須先確定Value屬性上限例7.5用進度條來指示一個大數組的元素賦值進度。SubCommand1_Click()DimiAsInteger,a(25000)AsStringProgressBar1.Min=LBound(a)ProgressBar1.Max=UBound(a)ProgressBar1.Visible=TrueProgressBar1.Value=ProgressBar1.MinFori=LBound(a)ToUBound(a)a(i)="Initialvalue"&iProgressBar1.Value=iNextiProgressBar1.Visible=FalseProgressBar1.Value=ProgressBar1.MinFori=1To10Printa(i)NextiEndSub7.1.3圖形框和圖像框圖形框PictureBox控件作用:顯示圖片,也可作為其他控件的容器在程序運行時裝入圖形:Picture1.Picture=LoadPicture(“圖形文件路徑及名稱")PrivateSubCommand1_Click()
Picture1.Picture=LoadPicture("G:\馮文娟\VB課程資料\VB\課件\#bmp")EndSub刪除圖形框中圖形Picture1.Picture=LoadPicture(“”)裝入另一個圖形框中的圖形Picture1.Picture=Picture2.Picture
Autosize屬性
True圖形框自動調整大小與圖片匹配
False圖形超過圖形框的部分將被剪裁掉圖像框Image
使用方法與圖形框相同區(qū)別:1.圖形框作為一個“容器”,可以把其他控件放在其內作為它的“子控件”,當圖形發(fā)生位移,其內的子控件也跟著一起移動。圖像框內不能存放其他控件
2.沒有Autosize屬性,但有Stretch屬性3.圖形框可通過Print方法顯示文本,而圖像框不能
Stretch屬性
False:圖像框自動改變大小適應其中的圖形
True:圖形根據圖像框的大小自動調整尺寸例7.6說明圖像框的Stretch屬性對加載的圖形的影響Max屬性20、Min屬性0,Value初值10DimH&,WAsLongPrivate
SubCheck1_Click()Image1.Stretch=Check1.ValueEndSubPrivate
SubForm_Load()H=Image1.HeightW=Image1.WidthEndSubPrivate
SubHScroll1_Scroll()Image1.Height=H*HScroll1.Value/10Image1.Width=W*HScroll1.Value/10EndSub7.1.4定時器
時鐘控件(Timer)又稱定時器控件,用于有規(guī)律地定時執(zhí)行指定的工作如計時、倒計時、動畫等在程序運行階段,時鐘控件不可見。定時器以一定的時間間隔產生Timer事件屬性(1)Interval屬性(缺省設置為0
)單位:為毫秒(0.001秒),表示計時間隔若將Interval屬性設置為0或負數,則計時器停止工作
(2)Enabled屬性(缺省設置為True)設置為True,而且Interval>0,則計時器開始工作(以Interval屬性值為間隔,觸發(fā)Timer事件)設置為False可使時鐘控件無效,即計時器停止工作。事件:時鐘控件只有Timer事件當Enabled屬性值為True且Interval屬性值大于0時,該事件以Interval屬性指定的時間間隔發(fā)生常常將需要定時執(zhí)行的操作放在Timer事件過程中例、設窗體上有一個標簽Label1和一個計時器Timer1,Timer1的Interval設置為1000,Enabled設置為True。程序運行時每秒在標簽中顯示一次系統(tǒng)當前時間A)PrivateSubTimer1_Timer()Label1.Caption=True
EndSub
B)PrivateSubTimer1_Timer()
Label1.Caption=Time
EndSub
C)PrivateSubTimer1_Timer()Label1.Interval=1EndSubD)PrivateSubTimer1_Timer()
Fork=lToTimer1.Interval
Label1.Caption=Timer
Nextk
EndSub
例:某人在窗體上畫了一個Timer1的計時器,屬性設置為Enabled=True,Interval=0,一個標簽Label1的并編程如下。希望在每2秒在標簽上顯示一次系統(tǒng)當前時間
PrivateSubTimer1_Timer()
Label1.Caption=Time
EndSub
程序執(zhí)行時發(fā)現(xiàn)未能實現(xiàn)上述目的那么應做的修改是
A)通過屬性窗口把計時器的Interval屬性設置為2000
B)通過屬性窗口把計時器的Enabled屬生設置為False
C)把事件過程中的Label1.Caption=Time語句改為Timer1.Interval=Time
D)把事件過程中的Label1.Caption=Time語句改為Label1.Caption=Timer1.Time例7.7設計一個倒計時應用程序:設置Enabled=False,Interval=1000DimtAsIntegerSubCommand1_Click()t=60*Val(Text1.Text)Timer1.Enabled=TrueEndSubSubTimer1_Timer()Dimm%,sAsIntegert=t-1m=t\60s=tMod60Label1.Caption=m&"分"&s&"秒"If(t=0)ThenTimer1.Enabled=FalseMsgBox("時間到!")EndIfEndSub例7.8用一個定時器控制蝴蝶在窗體內的飛舞
對象名屬性設置Command1Caption退出Timer1Interval200Image1PictureBfly1.bmpImage2PictureVisibleBfly2.bmpFalseImage3PictureVisibleBfly1.bmpFalsePrivateSubTimer1_Timer()StaticxAsIntegerIfx=0ThenImage1.Picture=Image2.Picturex=1ElseImage1.Picture=Image3.Picturex=0EndIfEndSubPrivateSubTimer1_Timer()StaticxAsIntegerImage1.MoveImage1.Left+150,Image1.Top-100IfImage1.Top<=0ThenImage1.Left=0Image1.Top=2320EndIfIfx=0ThenImage1.Picture=Image2.Picturex=1ElseImage1.Picture=Image3.Picturex=0EndIfEndSub7.3菜單設計
菜單是Windows應用程序中十分關鍵的要素之一,它以分組的形式組織多個命令或操作,為用戶靈活操作應用程序提供了便捷的手段。菜單可分為兩種基本類型:下拉式和彈出式菜單下拉式菜單:一般通過單擊菜單欄中菜單標題(如“文件”、“編輯”、“視圖”等)的方式打開彈出式菜單:則通過用鼠標右鍵單擊某一區(qū)域打開快捷鍵熱鍵子菜單標記主菜單菜單項子菜單名分隔線7.3.1菜單編輯器
菜單列表框菜單項屬性
操作按鈕分隔線:在標題欄輸入一個連字符“-”啟動菜單編輯器:“工具”———“菜單編輯器”菜單編輯器的使用技巧1.標題(Caption)2.名稱(Name)3.快捷鍵(Shortcut)4.下一個(Next)5.←和→按鈕6.插入(Insert)按鈕7.刪除(Delete)按鈕8.↓和↑按鈕 9.復選Checked檢查框10.有效Enabled,可見Visible檢查框根據設計要求,依次輸入或選擇項目,即可例7.15將例7.10中的命令組織成菜單在窗體上放置一個文本框標題名稱快捷鍵標題名稱快捷鍵文件File編輯Edit…新建NewCtrl+N…復制CopyCtrl+C…打開OpenCtrl+O…剪切CutCtrl+X…另存為SaveAsCtrl+S…粘貼PasteCtrl+V…打印Print格式Format…結束Exit…字體Font…顏色ColorDimstAsStringPrivateSubCopy_Click()st=Text1.SelTextEndSubPrivateSubCut_Click()st=Text1.SelTextText1.SelText="“EndSubPrivateSubPaste_Click()Text1.SelText=stEndSubPrivateSubExit_Click()EndEndSubPrivateSubNew_Click()Text1.Text=""EndSub1.標題(Caption):若輸入文件(&F)熱鍵:Alt+F 2.名稱(Name): 菜單項的名稱,分界符-也應有名稱3.快捷鍵(Shortcut):下拉列表框選擇一個鍵4.下一個(Next): 設置下一個菜單項5.←和→:“→”下一級菜單項;“←”上一級菜單項6.插入(Insert)按鈕:插入菜單項7.刪除(Delete)按鈕:刪除菜單項8.↓和↑按鈕: 改變菜單項位置9.復選(Checked)檢查框:菜單項為選定項10.有效(Enabled)檢查框:True:菜單項可選;False:不可選。菜單項除了Name、Visible、Enabled等屬性之外,還具有下列重要屬性:(1)標題(Caption)菜單項上顯示的標題文本在字符前加一個&符號構成熱鍵。例如:輸入“新建(&N)”,則菜單顯示“新建(N)”,N為熱鍵(用Alt+N來打開菜單)菜單項的分隔符,輸入一個減號“-”。(2)Checked控制菜單項左邊是否顯示“√”菜單項的事件Click
為菜單項編寫程序1.設計下拉菜單:2.設計子菜單或改變子菜單級別:3.為菜單項分隔符:菜單名用減號“-”4.為菜單項指定訪問鍵和快捷鍵5.為菜單項加上復選標記6.禁止使用菜單項在程序代碼中可以通過程序代碼:菜單名.Enabled=False7.菜單項的增減
菜單設計的步驟:7.3.2彈出菜單
用戶在某個對象上單擊鼠標右鍵時的位置,彈出菜單項設計過程與普通菜單相同。為創(chuàng)建一個不顯示在菜單欄里的菜單,可在設計時使頂級菜單項目為不可見(“Visible”復選框沒有被選上)當VB顯示一個彈出式菜單時,指定的頂級菜單的Visible屬性會被忽略例:實現(xiàn)彈出式菜單標題名稱標題名稱字體txtfont形式Styl…宋體st…粗體ct…楷體kt…斜體xt…黑體ht…下劃線xhx顯示彈出菜單的方法:對象.PopupMenu菜單名,標志參數,x,y菜單名不能省略標志參數,表示彈出的位置和性能,用Or組合x,y:指定彈出菜單顯示的位置分類常數值說明位置vbPopupMenuLeftAlign0x位置確定彈出菜單的左邊界(默認)vbPopupMenuCenterAlign4彈出菜單以x為中心vbPopupMenuRightAlign8x位置確定彈出菜單的右邊界性能vbPopupMenuLeftButton0鼠標左鍵彈出菜單vbPopupMenuRightButton2鼠標右鍵彈出菜單PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle) IfButton=2Then PopupMenutxtfont,6 EndIfEndSubPrivateSubLabel1_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle) IfButton=2Then PopupMenuStyl,6 EndIfEndSub7.4多重窗體
指一個應用程序中有多個并列的普通窗體,每個窗體有自己的界面和代碼,完成不同的功能1.添加窗體工程——添加窗體,每個窗體有獨立的Form文件,同一工程不能有相同名稱的窗體。2.設置啟動對象(開始窗體)工程-----工程1屬性-----啟動對象(缺省為Form1窗體)SubMain過程:需要在啟動程序時執(zhí)行一個特定的過程。在VB中,這樣的過程稱為啟動過程,并命名為SubMainSubMain過程不能在窗體模塊內,必須在標準模塊中。其建立方法如下:1)選擇“工程”菜單中的“添加模塊”菜單項2)在該模塊(默認名稱為Module1)的代碼窗口中鍵入:SubMain后按回車鍵,系統(tǒng)自動給出過程的開始行和結束行3)在其中輸入過程代碼,并保存模塊文件Module1.bas4)選擇“工程”菜單中的“工程屬性”菜單項,打開“工程屬性”對話框5)選擇“通用”選項卡,在“啟動對象”下拉列表中,選擇SubMain,并按“確定”按鈕窗體語句和方法(1)Load語句:裝入窗體到內存可以引用窗體中的各對象,如控件及其各種屬性,但此時窗體沒有顯示出來形式:Load窗體名稱(2)Unload語句從內存刪除窗體形式:
Unload窗體名稱或
UnloadMe(3)Show方法:顯示窗體(加載并顯示兩種功能)形式:
窗體名稱.Show
模式
模式為0:可以同時對其它窗體進行操作(默認值)模式為1:關閉才能對其它窗體進行操作
(4)Hide方法:隱藏窗體(沒從內存刪掉)形式:
窗體名稱.Hide不同窗體數據的存取(1)直接訪問另一個窗體上的控件數據另一個窗體名.控件名.屬性
Text1=Val(Form2.Text1)+Val(Form2.Text2)(2)訪問另一個窗體中的全局變量另一個窗體名.全局變量名(3)在模塊定義公共變量,實現(xiàn)相互訪問在Module1定義變量:PublicxAsString例:應用程序增加一個“登錄”窗體來控制非法用戶使用在窗體Form2中輸入密碼,正確后彈出窗體Form1選擇Form2作為啟動窗體在窗體Form1中編輯代碼PrivateSubForm_Load()Label1.Caption="歡迎使用"&Chr(13)&"飛騰公司銷售系統(tǒng)"EndSub在窗體Form2中編輯代碼
PrivateSubCommand1_Click() IfLCase(Text1.Text)="abcde"Then UnloadForm2
Form1.Show Else MsgBox"對不起,口令錯!" Text1.Text="" Text1.SetFocus EndIfEndSubPrivateSubCommand2_Click() EndEndSub例7.17多重窗體應用:輸入學生五門課程的成績,計算總分及平均分并在不同窗體內顯示在窗體Module1中通用處編輯代碼PublicMath!,Physics!,Chemistry!,Chinese!,English
AsSingle在窗體Form1中編輯代碼PrivateSubCommand1_Click()Form1.Hide:Form2.ShowEndSubPrivateSubCommand2_Click()Form1.Hide:Form3.ShowEndSubPrivateSubCommand3_Click()EndEndSub在窗體Form2中編輯代碼PrivateSubCommand1_Click()Math=Val(Text1.Text)Physics=Val(Text2.Text)Chemistry=Val(Text3.Text)Chinese=Val(Text4.Text)English=Val(Text5.Text)Form2.Hide:Form1.ShowEndSub在窗體Form3中編輯代碼PrivateSubCommand1_Click()Form3.HideForm1.ShowEndSubPrivateSubForm_Activate()DimTotalAsSingleTotal=Math+Physics+Chemistry+Chinese+EnglishText1.Text=Total/5Text2.Text=TotalEndSub7.5鼠標和鍵盤
7.5.1鼠標鼠標事件需要注意事件發(fā)生在哪一個對象上Click、DblClick事件MouseDown:按下任意一個鼠標按鈕時被觸發(fā)MouseUp:釋放任意一個鼠標按鈕時被觸發(fā)MouseMove:移動鼠標時被觸發(fā)MouseMove、MouseDown、MouseUp三個事件的過程的語法格式如下:SubObject_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)SubObject_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)SubObject_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)其中:1.Object是可選的一個對象表達式,可以是窗體對象和大多數可視控件。2.Button參數是表示按下或松開鼠標哪個按鈕
參數Button值參數(Button) 值 說明vbLeftButton 1 左按鈕被按下vbRightButton 2 右按鈕被按下vbMiddleButton 4 中間按鈕被按下Shift參數:包含了鍵盤的Shift、Ctrl和Alt鍵的狀態(tài)信息參數Shift值參數(Shift)值 描述vbShiftMask1 SHIFT鍵被按下vbCtrlMask 2 CTRL鍵被按下vbAltMask 4 ALT鍵被按下參數X、Y:X,Y鼠標指針的坐標位置例7.18顯示鼠標器指針所指的位置PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)Text1.Text=XText2.Text=YEndSub
例7.19設計一個最簡單的畫圖程序。程序運行時,按住鼠標右鍵移動畫圓,按住鼠標左鍵移動畫線。DimDrawStateAsBooleanDimPreXAsSingleDimPreYAsSinglePrivateSubForm_Load()DrawState=FalseEndSubPrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=1ThenDrawState=TruePreX=XPreY=YEndIfIfButton=2ThenCircle(X,Y),280EndIfEndSubPrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfDrawState=TrueThenLine(PreX,PreY)-(X,Y)PreX=XPreY=YEndIfEndSubPrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=1ThenDrawState=FalseEndIfEndSub例:在菜單編輯器中建立1個名稱為Menu0的菜單項,將其“可見”屬性設置為False,并建立若干子菜單
PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
IfButton=1Then
PopupMenuMenu0
EndIf
EndSub
則以下敘述中錯誤的是。
A)該過程的作用是彈出一個菜單
B)單擊鼠標右鍵時彈出菜單
C)Menu0是在菜單編輯器中定義的彈出菜單的名稱
D)參數X、Y指明鼠標當前位置的坐標7.5.2鍵盤
KeyPress、KeyDown、KeyUp三種鍵盤事件,窗體和接受鍵盤輸入的控件都識別這三種事件
KeyPress:按下并釋放對應某ASCII字符的鍵KeyDown:按下鍵盤的任意鍵KeyUp:釋放鍵盤的任意鍵1.KeyPress事件當用戶按下和松開一個ASCII字符鍵時發(fā)生。該事件被觸發(fā)時,被按鍵的ASCII碼將自動傳遞給事件過程的KeyAscii參數格式是:SubObject_KeyPress(KeyAsciiAsInteger)例如,如果希望將文本框中的所有字符都強制轉換為大寫字符,則可在輸入時使用此事件轉換大小寫:PrivateSubText1_KeyPress(KeyAsciiAsInteger)KeyAscii=Asc(Ucase(Chr(KeyAscii)))EndSub2.KeyDown事件和KeyUp事件當焦點在某個對象時,用戶按下鍵盤上的任一鍵,便引發(fā)該對象KeyDown事件,釋放按鍵便觸發(fā)KeyUp事件(窗體的KeyPreview屬性設置為Ture)PrivateSub對象名_KeyDown(KeyCodeAsInteger,ShiftAsInteger)PrivateSub對象名_KeyUp(KeyCodeAsInteger,ShiftAsInteger)KeyCode參數項用于返回被按鍵的掃描代碼由于掃描碼主要反映物理鍵位,因此通過該參數不能區(qū)分字母大小寫。所以“A”和“a”的keycode都是由Asc(“A”)值上檔鍵字符和下檔鍵字符也是使用同一鍵,它們的Keycode值相同例:在窗體上畫一個命令按鈕和兩上文本,分別為
Command1、Text1和Text2,然后編寫如下程序:
DimS1AsString,S2AsString
PrivateSubText1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
S2=S2&Chr(KeyCode)
EndSub
PrivateSubText1_KeyPress(KeyAsciiAsInteger)
S1=S1&chr(KeyAscii)
EndSub
PrivateSubCommand1_Click()
Text1.Text=S2:Text2.Text=S1
EndSub
程序運行后,在Text1中輸入“abc”,然后單擊命令按鈕,在文本框Text1和Text2中顯示的內容分別為
A)abc和ABCB)abc和abcC)ABC和abcD)ABC和ABC
例、窗體上有兩個Text1、Text2的文本框。Text1的KeyUp的事件過程如下:
PrivateSubText1_KeyUp(KeyCodeAsInteger,shiftASInteger)
DimxASStringx=KeyCodeText2.Text=Chr(x+3)
EndSub
當向文本框Text1中輸入小寫字母a時,文本框Text2中顯示的是
A)AB)aC)DD)d
2.shift參數shift 表示是在該事件發(fā)生時響應SHIFT、CTRL和ALT
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑圍墻地基施工方案
- 戶外步道綠化施工方案
- 二零二五年度文化創(chuàng)意產業(yè)方借款協(xié)議
- 二零二五年度拖欠工資解除勞動合同實務案例范文
- 二零二五年度環(huán)保產業(yè)合作項目終止協(xié)議范本
- 非全日制合同制員工2025年度工作績效評估及獎勵合同
- 二零二五年度辣椒種植基地節(jié)水灌溉技術合同
- 二零二五年度工業(yè)氣體產業(yè)園區(qū)共建合作協(xié)議
- 二零二五年度醫(yī)院聘用護士勞動合同(護理心理健康)
- 幼兒園保育員聘用合同書(二零二五年度)-幼兒成長記錄合作
- 【短視頻質量對消費者購買行為的影響研究4300字(論文)】
- 教科版三年級科學下冊分組實驗與演示實驗目錄
- 暫予監(jiān)外執(zhí)行
- 急性腎小球腎炎講稿
- 義務教育語文課程標準(2022)測試題帶答案(20套)
- 公共廁所工程報價明細表
- 股骨頸骨折ppt精品
- 2023年江蘇農牧科技職業(yè)學院單招職業(yè)適應性測試題庫及答案解析
- 毛澤東詩詞鑒賞分析
- 小學數學-納稅教學設計學情分析教材分析課后反思
- 量具檢具清單
評論
0/150
提交評論