計算機程序設計-窗體和控件課件_第1頁
計算機程序設計-窗體和控件課件_第2頁
計算機程序設計-窗體和控件課件_第3頁
計算機程序設計-窗體和控件課件_第4頁
計算機程序設計-窗體和控件課件_第5頁
已閱讀5頁,還剩87頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第三章窗體和控件普通高等教育“十一五”國家級規(guī)劃教材全國高等醫(yī)藥院校藥學類規(guī)劃教材計算機程序設計(第二版)第三章窗體和控件普通高等教育“十一五”國家級第一節(jié)文本控件目錄第二節(jié)按鈕控件第三節(jié)單選按鈕和復選框沈陽藥科大學計算計教研室沈陽藥科大學計算計教研室第五節(jié)焦點和Tab順序第四節(jié)圖形控件控件學習的重點:控件對象的三要素第一節(jié)文本控件目錄第二節(jié)按鈕控件第三節(jié)單選按鈕和復2引言VisualBasic是一種可視化的高級程序設計語言,不但具有所見即所得的優(yōu)點,而且還提供了大量的Windows窗體控件。只要我們熟練掌握了這些控件的使用,就可以輕松編寫出具有Windows風格的圖形化界面的應用程序。本章將介紹VisualBasic中最基本的幾個標準控件,更高級的復雜控件將在第八章詳細介紹。引言VisualBasic是一種可視化的高級程序設計語言,3第一節(jié)文本控件3.1文本控件第一節(jié)文本控件3.1文本控件4第一節(jié)文本控件與文本有關的標準控件有兩個:1.標簽(Label)

程序在運行模式(RunMode)下,用戶不能編輯其內容。一般用做其它控件的功能提示說明或者顯示程序的運行結果。2.文本框(TextBox)

程序在運行模式(RunMode)下,用戶可以編輯其顯示內容,從而實現(xiàn)程序運行中的人機交互。一般用做輸入信息。標簽文本框第一節(jié)文本控件與文本有關的標準控件有兩個:2.文本框(T5第一節(jié)文本控件3.1.1標簽(Label)除前面講過的常用屬性Name,Top,Left,Height,Width,Visible,F(xiàn)ont外,標簽還具有以下屬性:(1)Caption(標題)

該屬性用于設置標簽中顯示的文本。該文本信息既可以在設計模式下通過屬性窗口設置,也可以在運行模式下通過修改Caption屬性來設置。例如,下面語句可將標簽的顯示文本更改為“消炎藥品”:

Label1.Caption="消炎藥品“Caption屬性是“標簽”控件的默認屬性,即下面的寫法與上面的屬性賦值語句是一致的:

Label1=“消炎藥品”注意:標簽沒有Text屬性,這與下面講到的文本框不同。第一節(jié)文本控件3.1.1標簽(Label)6第一節(jié)文本控件(2)Alignment(對齊方式)

用于設置標簽中文本的對齊方式,有三種取值情況:

0-LeftJustify(缺省)標簽中的文本左對齊

1-RightJustify標簽中的文本右對齊

2-Center標簽中的文本居中對齊

(3)BackStyle(背景風格)

該屬性用于設置標簽的背景風格,有兩種取值情況:

0-Transparent標簽的背景為透明的,就像是在一塊透明玻璃上書寫文本一樣,無論BackColor設為什么顏色都不會顯示。

1–Opaque(缺省)標簽的背景為非透明的,會遮擋標簽后面的內容第一節(jié)文本控件(2)Alignment(對齊方式)

7第一節(jié)文本控件標簽背景設置為透明:第一節(jié)文本控件標簽背景設置為透明:8第一節(jié)文本控件(4)BorderStyle(邊框風格)

該屬性用于設置標簽的邊框風格,有兩種取值情況:

0–None(缺省)標簽無邊框

1-FixedSingle標簽有邊框(5)Appearance(外觀)

該屬性用于設置標簽外觀是否具有立體的效果,有兩種取值情況:

0-Flat標簽為平面效果

1-3D(缺省)標簽為立體效果

注意:顯示3D效果的前提是將BorderStyle設置為1第一節(jié)文本控件(4)BorderStyle(邊框風格)

9第一節(jié)文本控件(6)AutoSize(自動調整大小)

該屬性用于設置標簽的大小是否隨標題文本大小的改變而改變,有兩種取值情況:

True標簽的大小隨標題文本大小的改變而改變

False(缺省)當標題太長時,只顯示其中的一部分內容(7)WordWrap(決定標簽的大小是否與文字保持自動調整)

標簽上顯示的內容要是想分多行顯示的話,要設置WordWrap屬性為True,并且該屬性生效必須設置AutoSize為True,否則不可以。總結:標簽Caption屬性顯示的內容控制換行顯示

Label1.Caption=“….”

&vbCrlf

&“….”Label1.caption=“….”

&Chr(13)&Chr(10)

&“….”第一節(jié)文本控件(6)AutoSize(自動調整大小)

10第一節(jié)文本控件3.1.2文本框(TextBox)文本框還具有以下屬性:(1)Text(文本)該屬性用于存放文本框中的文本信息包括在設計模式下對其賦值,或者在運算模式下,利用語句對其賦值,如:Text1.Text=“小鼠”其中,該屬性為文本框Text1的默認屬性,所以在對文本框的該屬性賦值時,可省略Text不寫,而直接寫成:

Text1=“小鼠”和前面講的標簽不同,文本框沒有Caption屬性。(2)MaxLength(允許輸入的最大字符數(shù))

注意:MaxLength=0時,表示無字符個數(shù)限制(可以接收VisualBasic系統(tǒng)規(guī)定的最大字符數(shù)32K)第一節(jié)文本控件3.1.2文本框(TextBox)(1)T11第一節(jié)文本控件注意:在MultiLine為True的前提下,強制文本框內文本換行的方法為:

設計模式下,在Text屬性中相應位置按下Ctrl+Enter

運行模式下,為Text屬性賦值時相應位置加入“vbCrLf”

例如:Text1.text="抗癌"+vbCrLf+"新藥物"(4)PassWordChar(文本框中用什么字符替代顯示)

該屬性一般用作口令的輸入。該屬性為空值時,表示顯示原始信息。注意:雖然文本框中的數(shù)據(jù)沒有真實地顯示在用戶面前,但卻保存著真實的值。(3)MultiLine(多行顯示)第一節(jié)文本控件注意:在MultiLine為True的前提下12第一節(jié)文本控件(5)ScrollBars(滾動條)四種取值情況:0-None(缺省)文本框中沒有滾動條1-Horizontal只有水平滾動條2-Vertical只有垂直滾動條3-Both同時具有水平和垂直滾動條

注意:只有當MultiLine屬性設置為True時,ScrollBars才生效。文本框中只要出現(xiàn)水平滾動條,那么文本框的自動換行功能將不生效,只能強制換行。

第一節(jié)文本控件(5)ScrollBars(滾動條)13第一節(jié)文本控件(6)Locked(鎖定)

注意:當Locked=True時文本框外觀無變化、可以接收焦點,用戶不能修改文本框內容,只能通過代碼修改Text屬性。(7)Enabled(激活可操作)

注意:Enabled和Locked并不相同。Enabled為False時,外觀變灰、不能接收焦點、用戶不能編輯文本內容、可以通過代碼修改Text屬性。第一節(jié)文本控件(6)Locked(鎖定)

注14第一節(jié)文本控件(8)

SelStart(從第幾個字符后開始選擇)、SelLength(選中了多少個字符)SelText(選中的具體文本內容)

應用舉例:文本控件\文本框\文本框中字符的選擇操作.vbp擴展練習:文本的復制當從文本框Text1中任意選擇三個字符粘貼到文本框Text2中時,系統(tǒng)是如何知道在文本框Text1中選擇的什么字符呢?第一節(jié)文本控件(8)SelStart(從第幾個字符后開始15第一節(jié)文本控件文本框的常用事件和方法:(1)Change事件

運行模式下無論通過什么方式(輸入或者刪除字符),只要文本框的內容發(fā)生改變,就會觸發(fā)Change事件。

應用舉例:通過Change事件即時計算圓的面積.vbp(2)KeyPress事件

運行模式下,在文本框中按下鍵盤上某個具有字符編輯功能的按鍵后,在文本框中的內容改變前,會觸發(fā)KeyPress事件。

應用舉例:通過KeyPress事件使輸入字符均為大寫.vbp

說明:a的ASCII為97,z的ASCII為122,A的ASCII為65,

Z的ASCII為90,0的ASCII為48.回車的ASCII為13.第一節(jié)文本控件文本框的常用事件和方法:16總結:KeyPress事件發(fā)生在文本框中的內容改變之前,當文本框內容改變后會觸發(fā)Change事件(當在文本框中按下了某個字符鍵,在這個字符沒有顯示在文本框時就會觸發(fā)KeyPress事件,然后字符顯示在文本框,然后觸發(fā)change事件)。當執(zhí)行過程理解了之后,這兩個事件各自執(zhí)行完之后文本框中的內容是什么就很容易理解了。第一節(jié)文本控件文本框的KeyPress事件與Change事件舉例總結:第一節(jié)文本控件文本框的KeyPress事件與Chan17第一節(jié)文本控件(3)GotFocus事件

運行模式下無論通過什么方式,只要光標焦點從其它控件進入該文本框就會觸發(fā)GotFocus事件。(4)LostFocus事件

運行模式下無論通過什么方式,只要光標焦點從該文本框移走就會觸發(fā)LostFocus事件。通常用來驗證輸入數(shù)據(jù)的合法性。

應用舉例:通過LostFocus事件判斷半徑的合法性.vbp(5)SetFocus方法

功能是在運行模式下通過代碼將光標焦點移動到指定的文本框中,語法為:

[對象名稱.]SetFocus。第一節(jié)文本控件(3)GotFocus事件

運18第一節(jié)文本控件在Text1的LostFocus事件

如果Text1的文本內容不是數(shù)值則彈出錯誤提示信息否則如果Text1的文本內容是負數(shù)則彈出錯誤提示信息IfText1.text不是數(shù)值then

MsgBox“XX”

elseIfText1.text是負數(shù)thenMsgBox“XX”

EndifEndifIfIsNumeric(Text1.text)=False

then

MsgBox“非數(shù)值錯誤!請重新輸入”

elseIfText1.text<0thenMsgBox“所輸入的半徑無效,請輸入非負的數(shù)值!”

EndifEndif是否需要繼續(xù)完善?第一節(jié)文本控件在Text1的LostFocus事件If19第二節(jié)按鈕控件3.2按鈕控件第二節(jié)按鈕控件3.2按鈕控件202.2按鈕控件

VisualBasic中的按鈕控件是命令按鈕,它可能是VisualBasic應用程序中最常用的控件,提供了用戶與應用程序交互最簡便的方法。按鈕2.2按鈕控件VisualBasic中的按鈕控件21第二節(jié)按鈕控件3.2.1命令按鈕(CommandButton)除前面講過的常用屬性外,命令按鈕還具有以下屬性:(1)Caption(標題)

該屬性用于設置命令按鈕上顯示的文本,用以標明該命令按鈕的功能。命令按鈕的熱鍵設置:在Caption屬性中將某個字母的前面添加一個“&”字符,程序運行時該字母下就會出現(xiàn)一個下劃線,此時利用鼠標單擊該按鈕與按下ALT+該字母的功能是等價的,我們把ALT+該字母稱為該命令按鈕的熱鍵。命令按鈕Name屬性和Caption屬性的區(qū)別(應用舉例):

Name屬性對開發(fā)者有意義,用來在代碼中區(qū)分不同對象

Caption屬性對使用者有意義,說明對象的用途第二節(jié)按鈕控件3.2.1命令按鈕(CommandBu22第二節(jié)按鈕控件(2)Default(默認對象或者說默認的確認功能按鈕)例子

當一個命令按鈕的Default屬性設置為True時,如果目前焦點沒有在其它命令按鈕上,那么按鍵盤上的回車鍵與單擊該命令按鈕的作用相同。在一個窗體中,只允許有一個命令按鈕的Default屬性被設置為True。

(3)Cancel(默認的取消功能按鈕)

當一個命令按鈕的Cancel屬性設置為True時,無論目前焦點在什么地方,按鍵盤上的Esc鍵與單擊該命令按鈕的作用相同。在一個窗體中,只允許有一個命令按鈕的Cancel屬性被設置為True。第二節(jié)按鈕控件(2)Default(默認對象或者說默23第二節(jié)按鈕控件(4)Style(外觀風格)

該屬性用于設置命令按鈕的外觀風格。有兩種取值情況:0-Standard標準樣式(缺省)命令按鈕上只能顯示文本內容(Caption屬性)。

1-Graphical圖形格式命令按鈕上既可以顯示文本內容,又可以顯示圖形(5)Picture(外觀圖片)

Style屬性為1時,命令按鈕上顯示的圖片。加載方法詳見PictureBox。(6)ToolTipText(工具提示)

例子在運行狀態(tài)下,當將鼠標停在某個按鈕上時,會出現(xiàn)文字提示說明該按鈕的作用。一般和Picture結合使用。第二節(jié)按鈕控件(4)Style(外觀風格)

24第二節(jié)按鈕控件命令按鈕常用的事件命令按鈕最常用的事件是單擊(Click)事件,說明(1)命令按鈕不支持DblClick事件。(2)觸發(fā)Click事件的方法有:a)用鼠標單擊該命令按鈕。b)用Tab鍵將焦點移動到該命令按鈕上,擊鍵盤上的空格鍵(或回車鍵)。c)利用Caption屬性中設定的熱鍵。d)對于Cancel屬性為True的按鈕,按下鍵盤上的Esc鍵。e)對于Default屬性為True的按鈕,當焦點不在其它命令按鈕上時,按下鍵盤上的回車鍵。第二節(jié)按鈕控件命令按鈕常用的事件a)用鼠標單擊該命令按25名稱用途單選框OptionButton用戶只能選擇一項復選框CheckBox用戶可以選擇一個或者多個選項列表框ListBox用戶可從中進行選擇的滾動列表組合框ComboBox一個可滾動選擇列表附加一個文本編輯域用戶可以從表中選擇或在編輯域中鍵入選擇框架Frame(輔助)分組(單選)、視覺上的分區(qū)、總體的激活或者屏蔽選擇性控件名稱用途單選框OptionButton用戶只能選擇一項復選框26第三節(jié)單選鈕和復選框3.3單選鈕和復選框第三節(jié)單選鈕和復選框3.3單選鈕和復選框27第三節(jié)單選鈕和復選框當需要為用戶提供幾種候選項供用戶選擇時,最常用的兩種控件就是:單選按鈕(OptionButton,又名收音機按鈕RadioButton)和復選框(CheckBox)。單選按鈕一組中只能選擇一項,復選框一組中可以同時選擇多項。例題。第三節(jié)單選鈕和復選框當需要為用戶提供幾種候選項供用戶選擇時28第三節(jié)單選鈕和復選框3.3.1重要屬性單選鈕和復選框除了常用屬性還具有以下重要屬性:(1)Value(選定狀態(tài))

用來設置和標識單選按鈕和復選框的選定狀態(tài)單選按鈕的Value屬性為布爾類型,有兩種取值情況:

False(缺省)表明該單選鈕未被選中

True表明該按鈕處于被選中狀態(tài)。復選框Value屬性為數(shù)值型,有三種取值情況:

0–Unchecked(缺省)該復選項目前未被選中

1–Checked該復選項目前已經(jīng)被選中

2–Grayed該復選框被禁止選擇(灰色)通過Value屬性判斷某侯選項是否被選中.vbp第三節(jié)單選鈕和復選框3.3.1重要屬性29第三節(jié)單選鈕和復選框(2)Alignment(對齊方式)

設置復選框或單選按鈕控件標題的對齊方式(和標簽的對齊方式意義不同),在設計模式和運行模式下均可設置。有兩種取值情況:

0–VbLeftJustify(缺省)控件居左,標題在控件右側顯示

1–VbRightJustify控件居右,標題在控件左側顯示

第三節(jié)單選鈕和復選框(2)Alignment(對齊方式)30第三節(jié)單選鈕和復選框(3)Style(風格)

指定復選框或單選按鈕的顯示方式。有兩種取值情況:0–VbButtonStandard(缺省)標準方式,同時顯示控件和標題

1–VbButtonGraphical圖形方式,控件用圖形的樣式顯示,外觀與命令按鈕相類似復選框和單選按鈕的風格比較.vbp第三節(jié)單選鈕和復選框(3)Style(風格)

31第三節(jié)單選鈕和復選框Click事件

單選鈕和復選框都可以接受click事件,但是通常不對該事件過程編程(通常用戶先對給出的選項進行選擇,再單擊某個具有“完成”功能的按鈕,此時再根據(jù)用戶的選擇做出相應的設置);如果想立即響應按鈕的選擇,則需要在click事件中編寫代碼。第三節(jié)單選鈕和復選框Click事件32第三節(jié)單選鈕和復選框3.3.2單選鈕和復選框應用舉例在窗體Form1上添加一個文本框Text1,將其Text屬性修改為“青霉素是抗菌消炎藥品”,F(xiàn)ont屬性設為宋體,四號。再添加兩個單選鈕Option1和Option2,將Caption屬性分別設定為“隸書”和“黑體”。再添加兩個復選框Check1和Check2,將Caption屬性分別設定為“斜體”和“刪除線”。要求:當單擊某種字體名稱或字體格式時,即時生效字符格式設定.vbp第三節(jié)單選鈕和復選框3.3.2單選鈕和復選框應用舉例33第四節(jié)圖形控件3.4圖形控件第四節(jié)圖形控件3.4圖形控件34第四節(jié)圖形控件為了設計內容豐富、界面美觀的應用程序我們經(jīng)常需要用到與圖形相關的控件,常見的有:圖片框(PictureBox)圖像框(Image)直線(Line)形狀(Shape)第四節(jié)圖形控件為了設計內容豐富、界面美觀的應用程序我們經(jīng)常35第四節(jié)圖形控件3.4.1PictureBoxPictureBox(圖片框)控件的主要作用是顯示圖片,另外還可作為容器,像窗體一樣容納和分組其它控件及打印輸出。1.重要屬性(1)Align(??课恢?

用于設置圖片框在窗體上的位置,有以下幾種取值情況:0–None(缺?。﹫D片框的大小、位置由設計者手動設定

1–AlignTop上邊緣自動與窗體上邊緣對齊,寬度自動與窗體的寬度相同(之后調整窗體寬度時,圖片框的寬度也自動改變),高度保持原來高度不變(可以自行調整)。位置和寬度不可自行隨意調整

2–AlignBottom

3–AlignLeft

4–AlignRight第四節(jié)圖形控件3.4.1PictureBox36第四節(jié)圖形控件(2)Picture(顯示圖片)

設置圖片框上顯示的圖片。加載方法(同命令按鈕):第一種:在設計模式下從屬性窗口中添加/修改第二種:在運行模式下通過LoadPicture函數(shù)添加/修改,語法格式為:

[對象名.]Picture=LoadPicture(“帶完整路徑的圖片文件名”)

裝入圖形:

Picture2.Picture=LoadPicture(“C:\animal\dog.bmp”)刪除圖形:Picture2.Picture=LoadPicture(“”)

將Pictrue1和Picture2中現(xiàn)有的圖片進行交換:例子Picture3.Picture=Picture1.Picture

Picture1.Picture=Picture2.Picture

Picture2.Picture=Picture3.Picture第四節(jié)圖形控件(2)Picture(顯示圖片)

37第四節(jié)圖形控件(2)Appearance(外觀)

設置圖片框是否以立體三維形式顯示邊框。(3)AutoRedraw(自動重繪)

與窗體相同,在程序運行過程中,當在圖片框中使用圖形方法(如Circle、Line、Point和Pset)繪制圖形或使用Print方法輸出文本后,由于被其它對象遮擋而使得被繪制的圖形或打印的文本不可見后,被遮擋部分再次露出時,如果該屬性設置為True,那么這些圖形或文本將被自動重繪輸出。(4)AutoSize(自動調整尺寸)

設置圖片框是否自動調整為與Picture屬性中加載的圖片尺寸相同。(注意與Image的Stretch屬性的區(qū)別)第四節(jié)圖形控件(2)Appearance(外觀)

38第四節(jié)圖形控件3.4.2Image圖像框(Image)和圖片框都可以顯示圖片,但圖像框不能作為容器(不能像圖片框一樣存放其它的控件和打印輸出),另外圖像框比圖片框占用更少的內存,描繪的更快。圖像框的特殊屬性——Stretch(拉伸)

False裝載圖片后,圖像框的大小自動調整為與圖形的大小相同。當調整圖像框的大小時圖形并不跟隨縮放調整

True圖形的大小根據(jù)圖像框大小的進行拉伸縮放,顯示的永遠是圖形的全部內容PictureBox的AutoSize(自動調整尺寸)屬性:區(qū)別設置圖片框是否自動調整為與Picture屬性中加載的圖片尺寸相同。第四節(jié)圖形控件3.4.2ImagePictureBox的39第四節(jié)圖形控件3.4.3LineLine控件可以顯示為一條直線。常見屬性:1. BorderColor

線條的顏色2. BorderStyle

線型。例如實線、虛線等。取值從0到6。3. BorderWidth

線條的粗細。4. X1、Y1和X2、Y2

線條的起始端點坐標第四節(jié)圖形控件3.4.3Line40第四節(jié)圖形控件3.4.4ShapeShape控件可以顯示為一個簡單的圖形。常見屬性:1. BackColor、BackStyle

同Label控件。2. BorderColor、BorderStyle、BorderWidth

圖形的邊框格式。同Line控件。3. FillColor、FillStyle

填充圖案的顏色和填充圖案的類型,如水平直線填充、斜線填充等。FillStyle的取值從0到7,共8種填充圖案。4. Shape

圖案的外觀形狀,例如圓形、橢圓形、正方形等。取值從0到5,共有6種情況。例:奧運五環(huán)第四節(jié)圖形控件3.4.4Shape例:奧運五環(huán)41第五節(jié)焦點和Tab順序3.5焦點和Tab順序第五節(jié)焦點和Tab順序3.5焦點和Tab順序42第五節(jié)焦點和Tab順序3.5.1設置焦點1.只有具有焦點的對象才可以接收用戶的輸入。2.對象得到焦點時,會觸發(fā)GotFocus事件;失去焦點時,將觸發(fā)LostFocus事件。3.為對象設置焦點的方法有:

1)利用鼠標單擊該對象

2)利用Tab鍵將焦點移動到該對象上

3)利用熱鍵選擇該對象

4)通過SetFocus方法將焦點放到某對象上4.對象的Enabled和Visible屬性均為True時,才能接收焦點5.并非所有對象都可以接收焦點。常見控件中,F(xiàn)rame、Label、Menu、Line、Shape、Image和Timer等,不能接收焦點。(只有當窗體上的任何控件都不能接收焦點時,該窗體才能接收焦點)第五節(jié)焦點和Tab順序3.5.1設置焦點43第五節(jié)焦點和Tab順序3.5.2Tab順序Tab順序就是按下Tab鍵時,焦點在各控件之間移動的順序。默認情況下,Tab順序就是控件建立的先后順序。前面列出的不能接受焦點的控件,以及無效的、不可見的控件,由于無法接收焦點,在按Tab鍵時會被直接跳過。能夠接受焦點的控件對象都有一個TabIndex屬性,其實Tab順序就是該屬性的順序。通過人為修改TabIndex的值,就可以按照用戶操作的習慣來設置各控件的Tab順序,以實現(xiàn)界面操作的友好性。第五節(jié)焦點和Tab順序3.5.2Tab順序44注意事項:

1.窗體窗口中的控件名稱必須和代碼窗口中的一致。

2.對某事件編寫代碼最好直接雙擊該控件,不要手寫。有些事件需要參數(shù)例如keyPress事件中keyAscii參數(shù)。3.如果書寫某對象的屬性時,按下“.”之后沒有提示,一般說明控件名寫錯了(例如:lable1.text)。可以用”me.對象名.屬性”的方法來避免或者在屬性窗口中復制對象的名字。

4.picture控件的picture屬性只有當style為1時才生效。注意VB自帶的圖庫目錄位置。

5.使用FontName,FontBold等屬性的注意事項:“宋體”為字體名稱,“粗體”不是,Text1.FontBold=notText1.FontBold的意義

3注意事項:345Endofthechapter沈陽藥科大學計算機教研室Endofthechapter沈陽藥科大學計算機教研室第三章窗體和控件普通高等教育“十一五”國家級規(guī)劃教材全國高等醫(yī)藥院校藥學類規(guī)劃教材計算機程序設計(第二版)第三章窗體和控件普通高等教育“十一五”國家級第一節(jié)文本控件目錄第二節(jié)按鈕控件第三節(jié)單選按鈕和復選框沈陽藥科大學計算計教研室沈陽藥科大學計算計教研室第五節(jié)焦點和Tab順序第四節(jié)圖形控件控件學習的重點:控件對象的三要素第一節(jié)文本控件目錄第二節(jié)按鈕控件第三節(jié)單選按鈕和復48引言VisualBasic是一種可視化的高級程序設計語言,不但具有所見即所得的優(yōu)點,而且還提供了大量的Windows窗體控件。只要我們熟練掌握了這些控件的使用,就可以輕松編寫出具有Windows風格的圖形化界面的應用程序。本章將介紹VisualBasic中最基本的幾個標準控件,更高級的復雜控件將在第八章詳細介紹。引言VisualBasic是一種可視化的高級程序設計語言,49第一節(jié)文本控件3.1文本控件第一節(jié)文本控件3.1文本控件50第一節(jié)文本控件與文本有關的標準控件有兩個:1.標簽(Label)

程序在運行模式(RunMode)下,用戶不能編輯其內容。一般用做其它控件的功能提示說明或者顯示程序的運行結果。2.文本框(TextBox)

程序在運行模式(RunMode)下,用戶可以編輯其顯示內容,從而實現(xiàn)程序運行中的人機交互。一般用做輸入信息。標簽文本框第一節(jié)文本控件與文本有關的標準控件有兩個:2.文本框(T51第一節(jié)文本控件3.1.1標簽(Label)除前面講過的常用屬性Name,Top,Left,Height,Width,Visible,F(xiàn)ont外,標簽還具有以下屬性:(1)Caption(標題)

該屬性用于設置標簽中顯示的文本。該文本信息既可以在設計模式下通過屬性窗口設置,也可以在運行模式下通過修改Caption屬性來設置。例如,下面語句可將標簽的顯示文本更改為“消炎藥品”:

Label1.Caption="消炎藥品“Caption屬性是“標簽”控件的默認屬性,即下面的寫法與上面的屬性賦值語句是一致的:

Label1=“消炎藥品”注意:標簽沒有Text屬性,這與下面講到的文本框不同。第一節(jié)文本控件3.1.1標簽(Label)52第一節(jié)文本控件(2)Alignment(對齊方式)

用于設置標簽中文本的對齊方式,有三種取值情況:

0-LeftJustify(缺省)標簽中的文本左對齊

1-RightJustify標簽中的文本右對齊

2-Center標簽中的文本居中對齊

(3)BackStyle(背景風格)

該屬性用于設置標簽的背景風格,有兩種取值情況:

0-Transparent標簽的背景為透明的,就像是在一塊透明玻璃上書寫文本一樣,無論BackColor設為什么顏色都不會顯示。

1–Opaque(缺省)標簽的背景為非透明的,會遮擋標簽后面的內容第一節(jié)文本控件(2)Alignment(對齊方式)

53第一節(jié)文本控件標簽背景設置為透明:第一節(jié)文本控件標簽背景設置為透明:54第一節(jié)文本控件(4)BorderStyle(邊框風格)

該屬性用于設置標簽的邊框風格,有兩種取值情況:

0–None(缺省)標簽無邊框

1-FixedSingle標簽有邊框(5)Appearance(外觀)

該屬性用于設置標簽外觀是否具有立體的效果,有兩種取值情況:

0-Flat標簽為平面效果

1-3D(缺省)標簽為立體效果

注意:顯示3D效果的前提是將BorderStyle設置為1第一節(jié)文本控件(4)BorderStyle(邊框風格)

55第一節(jié)文本控件(6)AutoSize(自動調整大小)

該屬性用于設置標簽的大小是否隨標題文本大小的改變而改變,有兩種取值情況:

True標簽的大小隨標題文本大小的改變而改變

False(缺省)當標題太長時,只顯示其中的一部分內容(7)WordWrap(決定標簽的大小是否與文字保持自動調整)

標簽上顯示的內容要是想分多行顯示的話,要設置WordWrap屬性為True,并且該屬性生效必須設置AutoSize為True,否則不可以??偨Y:標簽Caption屬性顯示的內容控制換行顯示

Label1.Caption=“….”

&vbCrlf

&“….”Label1.caption=“….”

&Chr(13)&Chr(10)

&“….”第一節(jié)文本控件(6)AutoSize(自動調整大小)

56第一節(jié)文本控件3.1.2文本框(TextBox)文本框還具有以下屬性:(1)Text(文本)該屬性用于存放文本框中的文本信息包括在設計模式下對其賦值,或者在運算模式下,利用語句對其賦值,如:Text1.Text=“小鼠”其中,該屬性為文本框Text1的默認屬性,所以在對文本框的該屬性賦值時,可省略Text不寫,而直接寫成:

Text1=“小鼠”和前面講的標簽不同,文本框沒有Caption屬性。(2)MaxLength(允許輸入的最大字符數(shù))

注意:MaxLength=0時,表示無字符個數(shù)限制(可以接收VisualBasic系統(tǒng)規(guī)定的最大字符數(shù)32K)第一節(jié)文本控件3.1.2文本框(TextBox)(1)T57第一節(jié)文本控件注意:在MultiLine為True的前提下,強制文本框內文本換行的方法為:

設計模式下,在Text屬性中相應位置按下Ctrl+Enter

運行模式下,為Text屬性賦值時相應位置加入“vbCrLf”

例如:Text1.text="抗癌"+vbCrLf+"新藥物"(4)PassWordChar(文本框中用什么字符替代顯示)

該屬性一般用作口令的輸入。該屬性為空值時,表示顯示原始信息。注意:雖然文本框中的數(shù)據(jù)沒有真實地顯示在用戶面前,但卻保存著真實的值。(3)MultiLine(多行顯示)第一節(jié)文本控件注意:在MultiLine為True的前提下58第一節(jié)文本控件(5)ScrollBars(滾動條)四種取值情況:0-None(缺省)文本框中沒有滾動條1-Horizontal只有水平滾動條2-Vertical只有垂直滾動條3-Both同時具有水平和垂直滾動條

注意:只有當MultiLine屬性設置為True時,ScrollBars才生效。文本框中只要出現(xiàn)水平滾動條,那么文本框的自動換行功能將不生效,只能強制換行。

第一節(jié)文本控件(5)ScrollBars(滾動條)59第一節(jié)文本控件(6)Locked(鎖定)

注意:當Locked=True時文本框外觀無變化、可以接收焦點,用戶不能修改文本框內容,只能通過代碼修改Text屬性。(7)Enabled(激活可操作)

注意:Enabled和Locked并不相同。Enabled為False時,外觀變灰、不能接收焦點、用戶不能編輯文本內容、可以通過代碼修改Text屬性。第一節(jié)文本控件(6)Locked(鎖定)

注60第一節(jié)文本控件(8)

SelStart(從第幾個字符后開始選擇)、SelLength(選中了多少個字符)SelText(選中的具體文本內容)

應用舉例:文本控件\文本框\文本框中字符的選擇操作.vbp擴展練習:文本的復制當從文本框Text1中任意選擇三個字符粘貼到文本框Text2中時,系統(tǒng)是如何知道在文本框Text1中選擇的什么字符呢?第一節(jié)文本控件(8)SelStart(從第幾個字符后開始61第一節(jié)文本控件文本框的常用事件和方法:(1)Change事件

運行模式下無論通過什么方式(輸入或者刪除字符),只要文本框的內容發(fā)生改變,就會觸發(fā)Change事件。

應用舉例:通過Change事件即時計算圓的面積.vbp(2)KeyPress事件

運行模式下,在文本框中按下鍵盤上某個具有字符編輯功能的按鍵后,在文本框中的內容改變前,會觸發(fā)KeyPress事件。

應用舉例:通過KeyPress事件使輸入字符均為大寫.vbp

說明:a的ASCII為97,z的ASCII為122,A的ASCII為65,

Z的ASCII為90,0的ASCII為48.回車的ASCII為13.第一節(jié)文本控件文本框的常用事件和方法:62總結:KeyPress事件發(fā)生在文本框中的內容改變之前,當文本框內容改變后會觸發(fā)Change事件(當在文本框中按下了某個字符鍵,在這個字符沒有顯示在文本框時就會觸發(fā)KeyPress事件,然后字符顯示在文本框,然后觸發(fā)change事件)。當執(zhí)行過程理解了之后,這兩個事件各自執(zhí)行完之后文本框中的內容是什么就很容易理解了。第一節(jié)文本控件文本框的KeyPress事件與Change事件舉例總結:第一節(jié)文本控件文本框的KeyPress事件與Chan63第一節(jié)文本控件(3)GotFocus事件

運行模式下無論通過什么方式,只要光標焦點從其它控件進入該文本框就會觸發(fā)GotFocus事件。(4)LostFocus事件

運行模式下無論通過什么方式,只要光標焦點從該文本框移走就會觸發(fā)LostFocus事件。通常用來驗證輸入數(shù)據(jù)的合法性。

應用舉例:通過LostFocus事件判斷半徑的合法性.vbp(5)SetFocus方法

功能是在運行模式下通過代碼將光標焦點移動到指定的文本框中,語法為:

[對象名稱.]SetFocus。第一節(jié)文本控件(3)GotFocus事件

運64第一節(jié)文本控件在Text1的LostFocus事件

如果Text1的文本內容不是數(shù)值則彈出錯誤提示信息否則如果Text1的文本內容是負數(shù)則彈出錯誤提示信息IfText1.text不是數(shù)值then

MsgBox“XX”

elseIfText1.text是負數(shù)thenMsgBox“XX”

EndifEndifIfIsNumeric(Text1.text)=False

then

MsgBox“非數(shù)值錯誤!請重新輸入”

elseIfText1.text<0thenMsgBox“所輸入的半徑無效,請輸入非負的數(shù)值!”

EndifEndif是否需要繼續(xù)完善?第一節(jié)文本控件在Text1的LostFocus事件If65第二節(jié)按鈕控件3.2按鈕控件第二節(jié)按鈕控件3.2按鈕控件662.2按鈕控件

VisualBasic中的按鈕控件是命令按鈕,它可能是VisualBasic應用程序中最常用的控件,提供了用戶與應用程序交互最簡便的方法。按鈕2.2按鈕控件VisualBasic中的按鈕控件67第二節(jié)按鈕控件3.2.1命令按鈕(CommandButton)除前面講過的常用屬性外,命令按鈕還具有以下屬性:(1)Caption(標題)

該屬性用于設置命令按鈕上顯示的文本,用以標明該命令按鈕的功能。命令按鈕的熱鍵設置:在Caption屬性中將某個字母的前面添加一個“&”字符,程序運行時該字母下就會出現(xiàn)一個下劃線,此時利用鼠標單擊該按鈕與按下ALT+該字母的功能是等價的,我們把ALT+該字母稱為該命令按鈕的熱鍵。命令按鈕Name屬性和Caption屬性的區(qū)別(應用舉例):

Name屬性對開發(fā)者有意義,用來在代碼中區(qū)分不同對象

Caption屬性對使用者有意義,說明對象的用途第二節(jié)按鈕控件3.2.1命令按鈕(CommandBu68第二節(jié)按鈕控件(2)Default(默認對象或者說默認的確認功能按鈕)例子

當一個命令按鈕的Default屬性設置為True時,如果目前焦點沒有在其它命令按鈕上,那么按鍵盤上的回車鍵與單擊該命令按鈕的作用相同。在一個窗體中,只允許有一個命令按鈕的Default屬性被設置為True。

(3)Cancel(默認的取消功能按鈕)

當一個命令按鈕的Cancel屬性設置為True時,無論目前焦點在什么地方,按鍵盤上的Esc鍵與單擊該命令按鈕的作用相同。在一個窗體中,只允許有一個命令按鈕的Cancel屬性被設置為True。第二節(jié)按鈕控件(2)Default(默認對象或者說默69第二節(jié)按鈕控件(4)Style(外觀風格)

該屬性用于設置命令按鈕的外觀風格。有兩種取值情況:0-Standard標準樣式(缺省)命令按鈕上只能顯示文本內容(Caption屬性)。

1-Graphical圖形格式命令按鈕上既可以顯示文本內容,又可以顯示圖形(5)Picture(外觀圖片)

Style屬性為1時,命令按鈕上顯示的圖片。加載方法詳見PictureBox。(6)ToolTipText(工具提示)

例子在運行狀態(tài)下,當將鼠標停在某個按鈕上時,會出現(xiàn)文字提示說明該按鈕的作用。一般和Picture結合使用。第二節(jié)按鈕控件(4)Style(外觀風格)

70第二節(jié)按鈕控件命令按鈕常用的事件命令按鈕最常用的事件是單擊(Click)事件,說明(1)命令按鈕不支持DblClick事件。(2)觸發(fā)Click事件的方法有:a)用鼠標單擊該命令按鈕。b)用Tab鍵將焦點移動到該命令按鈕上,擊鍵盤上的空格鍵(或回車鍵)。c)利用Caption屬性中設定的熱鍵。d)對于Cancel屬性為True的按鈕,按下鍵盤上的Esc鍵。e)對于Default屬性為True的按鈕,當焦點不在其它命令按鈕上時,按下鍵盤上的回車鍵。第二節(jié)按鈕控件命令按鈕常用的事件a)用鼠標單擊該命令按71名稱用途單選框OptionButton用戶只能選擇一項復選框CheckBox用戶可以選擇一個或者多個選項列表框ListBox用戶可從中進行選擇的滾動列表組合框ComboBox一個可滾動選擇列表附加一個文本編輯域用戶可以從表中選擇或在編輯域中鍵入選擇框架Frame(輔助)分組(單選)、視覺上的分區(qū)、總體的激活或者屏蔽選擇性控件名稱用途單選框OptionButton用戶只能選擇一項復選框72第三節(jié)單選鈕和復選框3.3單選鈕和復選框第三節(jié)單選鈕和復選框3.3單選鈕和復選框73第三節(jié)單選鈕和復選框當需要為用戶提供幾種候選項供用戶選擇時,最常用的兩種控件就是:單選按鈕(OptionButton,又名收音機按鈕RadioButton)和復選框(CheckBox)。單選按鈕一組中只能選擇一項,復選框一組中可以同時選擇多項。例題。第三節(jié)單選鈕和復選框當需要為用戶提供幾種候選項供用戶選擇時74第三節(jié)單選鈕和復選框3.3.1重要屬性單選鈕和復選框除了常用屬性還具有以下重要屬性:(1)Value(選定狀態(tài))

用來設置和標識單選按鈕和復選框的選定狀態(tài)單選按鈕的Value屬性為布爾類型,有兩種取值情況:

False(缺省)表明該單選鈕未被選中

True表明該按鈕處于被選中狀態(tài)。復選框Value屬性為數(shù)值型,有三種取值情況:

0–Unchecked(缺省)該復選項目前未被選中

1–Checked該復選項目前已經(jīng)被選中

2–Grayed該復選框被禁止選擇(灰色)通過Value屬性判斷某侯選項是否被選中.vbp第三節(jié)單選鈕和復選框3.3.1重要屬性75第三節(jié)單選鈕和復選框(2)Alignment(對齊方式)

設置復選框或單選按鈕控件標題的對齊方式(和標簽的對齊方式意義不同),在設計模式和運行模式下均可設置。有兩種取值情況:

0–VbLeftJustify(缺省)控件居左,標題在控件右側顯示

1–VbRightJustify控件居右,標題在控件左側顯示

第三節(jié)單選鈕和復選框(2)Alignment(對齊方式)76第三節(jié)單選鈕和復選框(3)Style(風格)

指定復選框或單選按鈕的顯示方式。有兩種取值情況:0–VbButtonStandard(缺省)標準方式,同時顯示控件和標題

1–VbButtonGraphical圖形方式,控件用圖形的樣式顯示,外觀與命令按鈕相類似復選框和單選按鈕的風格比較.vbp第三節(jié)單選鈕和復選框(3)Style(風格)

77第三節(jié)單選鈕和復選框Click事件

單選鈕和復選框都可以接受click事件,但是通常不對該事件過程編程(通常用戶先對給出的選項進行選擇,再單擊某個具有“完成”功能的按鈕,此時再根據(jù)用戶的選擇做出相應的設置);如果想立即響應按鈕的選擇,則需要在click事件中編寫代碼。第三節(jié)單選鈕和復選框Click事件78第三節(jié)單選鈕和復選框3.3.2單選鈕和復選框應用舉例在窗體Form1上添加一個文本框Text1,將其Text屬性修改為“青霉素是抗菌消炎藥品”,F(xiàn)ont屬性設為宋體,四號。再添加兩個單選鈕Option1和Option2,將Caption屬性分別設定為“隸書”和“黑體”。再添加兩個復選框Check1和Check2,將Caption屬性分別設定為“斜體”和“刪除線”。要求:當單擊某種字體名稱或字體格式時,即時生效字符格式設定.vbp第三節(jié)單選鈕和復選框3.3.2單選鈕和復選框應用舉例79第四節(jié)圖形控件3.4圖形控件第四節(jié)圖形控件3.4圖形控件80第四節(jié)圖形控件為了設計內容豐富、界面美觀的應用程序我們經(jīng)常需要用到與圖形相關的控件,常見的有:圖片框(PictureBox)圖像框(Image)直線(Line)形狀(Shape)第四節(jié)圖形控件為了設計內容豐富、界面美觀的應用程序我們經(jīng)常81第四節(jié)圖形控件3.4.1PictureBoxPictureBox(圖片框)控件的主要作用是顯示圖片,另外還可作為容器,像窗體一樣容納和分組其它控件及打印輸出。1.重要屬性(1)Align(停靠位置)

用于設置圖片框在窗體上的位置,有以下幾種取值情況:0–None(缺省)圖片框的大小、位置由設計者手動設定

1–AlignTop上邊緣自動與窗體上邊緣對齊,寬度自動與窗體的寬度相同(之后調整窗體寬度時,圖片框的寬度也自動改變),高度保持原來高度不變(可以自行調整)。位置和寬度不可自行隨意調整

2–AlignBottom

3–AlignLeft

4–AlignRight第四節(jié)圖形控件3.4.1PictureBox82第四節(jié)圖形控件(2)Picture(顯示圖片)

設置圖片框上顯示的圖片。加載方法(同命令按鈕):第一種:在設計模式下從屬性窗口中添加/修改第二種:在運行模式下通過LoadPicture函數(shù)添加/修改,語法格式為:

[對象名.]Picture=LoadPicture(“帶完整路徑的圖片文件名”)

裝入圖形:

Picture2.Picture=LoadPicture(“C:\animal\dog.bmp”)刪除圖形:Picture2.Picture=LoadPicture(“”)

將Pictrue1和Picture2中現(xiàn)有的圖片進行交換:例子Picture3.Picture=Picture1.Picture

Picture1.Picture=Picture2.Picture

Picture2.Picture=Picture3.Picture第四節(jié)圖形控件(2)Picture(顯示圖片)

83第四節(jié)圖形控件(2)Appearance(外觀)

設置圖片框

溫馨提示

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

評論

0/150

提交評論