版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
控件的基本概念控件是放置在Windows窗體上,供用戶與應(yīng)用程序發(fā)生交互的對(duì)象。每種類型的控件都具有其自己的屬性集、方法和事件,以使該控件適合于特定用途。
控件的屬性在程序設(shè)計(jì)期間,我們可以通過屬性窗口設(shè)置、修改各個(gè)控件的屬性;在程序運(yùn)行期間,我們也可以通過代碼來取得、設(shè)置、修改各個(gè)控件的屬性。(一)Label控件Label控件只能用于顯示文本,不能用于編輯文本,通常用它來標(biāo)識(shí)一些不便于顯示文本的控件。舉例如下,當(dāng)點(diǎn)擊【登錄】按鈕后,將提示信息“用戶名:”改為“輸入錯(cuò)誤:”,并把背景顏色改為紅色:
lblUserName.Text="輸入錯(cuò)誤:"lblUserName.BackColor=Color.RedTextBox控件TextBox控件主要用于接收用戶輸入的文本信息,也可以向用戶顯示文本信息。舉例如下,當(dāng)點(diǎn)擊【登錄】按鈕后,判斷用戶輸入的“用戶名”和“密碼”,如果輸入正確則清空用戶輸入的“用戶名”和“密碼”信息,如果輸入錯(cuò)誤,將txtPassWord文本框的背景顏色改為紅色:
IftxtUserName.Text="guest"AndtxtPassword.Text="123"ThentxtUserName.Text=""txtPassword.Text=""ElsetxtPassword.BackColor=Color.RedEndIf
Button控件Button控件主要用于引發(fā)事件,執(zhí)行相關(guān)的動(dòng)作。舉例如下:當(dāng)點(diǎn)擊【登錄】按鈕,如果合法登錄后,則將【登錄】按鈕設(shè)為不可用,禁止用戶再次登錄。
IftxtUserName.Text="guest"AndtxtPassword.Text="123"ThenbtnLongin.Enabled=FalseEndIf控件的方法方法是與對(duì)象關(guān)聯(lián)的過程。與屬性不同,方法表示對(duì)象可以執(zhí)行的操作,方法可以影響屬性的值。例如,在TextBox控件上,可以使用AppendText方法或Clear方法,更改Text屬性的值。不同的方法有不同的使用方式,這取決于方法所需的參數(shù)數(shù)量以及方法是否返回值。Label控件舉例如下:當(dāng)?shù)卿洿翱诓辉傩枰斎朊艽a的時(shí)候,我們可以通過使用Hide()方法,把lblPassWord標(biāo)簽隱藏掉,等到需要輸入密碼時(shí),再使用Show()方法把它顯示處理。
lblPassWord.Hide()lblPassWord.Show()TextBox控件舉例如下:我們可以通過上述屬性,制作一個(gè)簡單的文本編輯器?!诖绑w中添加一個(gè)TextBox控件,并命名為txtT‘添加一個(gè)Button控件,并顯示文字“復(fù)制”,雙擊控件,添加代碼txtT.Copy()‘添加一個(gè)Button控件,并顯示文字“剪切”,雙擊控件,添加代碼txtT.Cut()‘添加一個(gè)Button控件,并顯示文字“粘貼”,雙擊控件,添加代碼txtT.Paste()
‘添加一個(gè)Button控件,并顯示文字“撤消”,雙擊控件,添加代碼txtT.Undo()‘添加一個(gè)Button控件,并顯示文字“清空內(nèi)容”,雙擊控件,添加代碼txtT.Clear()‘添加一個(gè)Button控件,并顯示文字“選擇全部”,雙擊控件,添加代碼txtT.SelectAll()Button控件舉例如下:當(dāng)點(diǎn)擊【登錄】按鈕,如果合法登錄后,則將【登錄】按鈕設(shè)為不可見,禁止用戶再次登錄;如果登錄不合法,則產(chǎn)生提示信息,并將焦點(diǎn)置于接收密碼文本框,以便用戶再次輸入密碼。
IftxtUserName.Text="guest"AndtxtPassword.Text="123"ThenbtnLongin.Hide()ElseMessageBox.Show("輸入錯(cuò)誤,請(qǐng)與管理員聯(lián)系!")txtPassword.Focus()EndIf控件的事件VisualStudio.NET開發(fā)的Windows應(yīng)用程序都是事件驅(qū)動(dòng)的,即執(zhí)行流程是由外界發(fā)生的事件所確定的。事件是一個(gè)信號(hào),它告知應(yīng)用程序有重要情況發(fā)生。例如,用戶單擊窗體上的某個(gè)按鈕時(shí),窗體引發(fā)一個(gè)Click事件并調(diào)用一個(gè)處理該事件的過程。任何能引發(fā)事件的對(duì)象都是事件發(fā)送者,也稱事件源。窗體、控件和用戶定義的對(duì)象都可以是事件源。事件處理程序是相應(yīng)事件發(fā)生時(shí)調(diào)用的過程,我們可以將任何有效Sub過程用作事件處理程序。注意:WithEvents
關(guān)鍵字指示被聲明的對(duì)象可以引發(fā)事件;Handles
關(guān)鍵字用于聲明處理指定的事件的過程;例如,在設(shè)計(jì)模式下雙擊窗體上的Button1按鈕時(shí),VisualBasic.NET會(huì)為命令按鈕創(chuàng)建一個(gè)空事件處理程序和一個(gè)WithEvents變量,如以下示例所示:‘聲明事件源Button1FriendWithEventsButton1AsSystem.Windows.Forms.Button‘事件處理程序ProtectedSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
…
…
…
…EndSub其他控件因?yàn)槠渌丶蟛糠值膶傩?、方法及事件與前面介紹的Label、TextBox、Button控件相類似,遇到困難請(qǐng)查閱MSDN。對(duì)象命名約定考慮到團(tuán)隊(duì),在程序開發(fā)的過程中要求每個(gè)人都應(yīng)該用一致的前綴來命名對(duì)象,使人們?nèi)菀鬃R(shí)別對(duì)象的類型。
特殊控件一、Timer控件Timer
是按標(biāo)準(zhǔn)時(shí)間間隔引發(fā)事件的組件;時(shí)間間隔的長度由Interval
屬性定義,其值以毫秒為單位;若啟用了該組件,則每個(gè)時(shí)間間隔引發(fā)一個(gè)Tick
事件;二、PictureBox
控件PictureBox
控件用于顯示位圖、GIF、JPEG、圖元文件或圖標(biāo)格式的圖形;使用Image
類的FromFile
方法設(shè)置Image
屬性;設(shè)置PictureBox
控件的SizeMode
屬性以達(dá)成以下目的:將圖片的左上角與控件的左上角對(duì)齊使圖片在控件內(nèi)居中調(diào)整控件的大小以適合其顯示的圖片拉伸所顯示的任何圖片以適合控件過程過程概述
過程可以被看作是一組由用戶定義的操作,它包含了實(shí)現(xiàn)這一操作所需的語句。VisualBasic.NET具有三種不同類型的過程:Sub過程:執(zhí)行操作但并不將值返回給呼叫代碼。(事件處理過程就是為響應(yīng)由用戶操作或程序中的事件引發(fā)的事件而執(zhí)行的Sub過程。)Function過程:執(zhí)行操作并將值返回給呼叫代碼。Sub過程Sub過程就是是包含在Sub語句和EndSub語句中的一系列語句塊。每次調(diào)用過程的時(shí)候都會(huì)執(zhí)行過程中的語句,從Sub語句后的第一個(gè)可執(zhí)行語句開始,到遇到的第一個(gè)EndSub、ExitSub或RETurn語句結(jié)束。Sub過程執(zhí)行操作但并不返回值。它能夠帶參數(shù),如呼叫代碼傳遞給它的常數(shù)、變量或表達(dá)式。
可以在模塊、類和結(jié)構(gòu)中聲明Sub過程。例如,聲明一個(gè)過程,用于判斷用戶的某個(gè)輸入是否為空值:
PublicSubcheckValue(ByValstrInputAsString)IfstrInput=""ThenMessageBox.Show("此處輸入不能為空!")EndIfEndSub'當(dāng)聲明了Sub過程后,我們就可以在程序的其他地方調(diào)用這個(gè)過程
DimstrTmpAsStringcheckValue(strTmp)Sub過程的聲明聲明Sub過程的語法如下所示:[訪問修飾符]Sub過程名([參數(shù)列])
…
…EndSub訪問修飾符可以是Public、Protected、Friend、ProtectedFriend或Private。默認(rèn)情況下它們是Public。參數(shù)聲明在聲明過程中,我們需要定義一個(gè)參數(shù)列,參數(shù)列由若干個(gè)參數(shù)組成,各個(gè)參數(shù)之間用逗號(hào)隔開。使用參數(shù)的目的是用于從呼叫代碼中傳遞信息(數(shù)據(jù))給被調(diào)用的過程。當(dāng)然,如果你不需要傳遞信息的話,參數(shù)列可以為空,但是,過程后跟的括號(hào)必須保留。參數(shù)列表中每個(gè)參數(shù)的語法如下所示:[ByVal|ByRef]參數(shù)名As參數(shù)類型ByVal:ByVal關(guān)鍵字用于聲明該參數(shù)是值傳遞機(jī)制。ByVal是參數(shù)聲明中的默認(rèn)值。ByRef:ByRef關(guān)鍵字用于聲明該參數(shù)是引用傳遞機(jī)制。過程調(diào)用調(diào)用Sub過程只需使用過程名即可,語法如下所示:[Call]過程名[(參數(shù)列)]例如:checkValue(strTmp)傳值調(diào)用傳值調(diào)用,就是在進(jìn)行過程調(diào)用時(shí),首先把實(shí)參的值拷貝一份到被調(diào)用過程的形參中,被調(diào)用過程執(zhí)行時(shí),不會(huì)改變程序中原先變量的值。舉例如下:‘聲明傳值調(diào)用過程swapcall,用于交換兩個(gè)整數(shù)的值
PublicSubswapcall(ByValintAAsInteger,ByValintBAsInteger)DimstrTmpAsStringstrTmp="在sub過程中交換之前,A=:"&intA&Chr(10)strTmp=strTmp&"在sub過程中交換之前,B=:"&intB&Chr(10)DimintTmpAsInteger
‘交換變量intA、intB的值
intTmp=intAintA=intBintB=intTmpstrTmp=strTmp&"在sub過程中交換之后,A=:"&intA&Chr(10)strTmp=strTmp&"在sub過程中交換之后,B=:"&intBMessageBox.Show(strTmp)EndSub
‘添加一個(gè)Button,然后在Click事件的處理程序中寫入代碼如下:PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickDimintXAsInteger=1DimintYAsInteger=2DimstrTmpAsString
‘Chr(10)代表換行符,起換行作用
strTmp="在傳呼代碼中傳值調(diào)用之前,X=:"&intX&Chr(10)strTmp=strTmp&"在傳呼代碼中傳值調(diào)用之前,Y=:"&intY&Chr(10)
‘調(diào)用swapcall過程swapcall(intX,intY)strTmp=strTmp&"在傳呼代碼中傳值調(diào)用之后,X=:"&intX&Chr(10)strTmp=strTmp&"在傳呼代碼中傳值調(diào)用之后,Y=:"&intYMessageBox.Show(strTmp)EndSub運(yùn)行上面程序,結(jié)果如下:引用調(diào)用在進(jìn)行引用調(diào)用時(shí),形參其實(shí)就是實(shí)參的別名,他們指向相同的內(nèi)存區(qū),在調(diào)用過程的時(shí)候,修改了形參的值,也就等于修改了實(shí)參的值。即在被調(diào)用過程執(zhí)行時(shí),會(huì)直接改變程序中原先變量的值。舉例如下:
‘聲明引用調(diào)用過程swapcall,用于交換兩個(gè)整數(shù)的值
PublicSubswapcall(ByRefintAAsInteger,ByRefintBAsInteger)DimstrTmpAsStringstrTmp="在sub過程中交換之前,A=:"&intA&Chr(10)strTmp=strTmp&"在sub過程中交換之前,B=:"&intB&Chr(10)DimintTmpAsInteger
‘交換變量intA、intB的值
intTmp=intAintA=intBintB=intTmpstrTmp=strTmp&"在sub過程中交換之后,A=:"&intA&Chr(10)strTmp=strTmp&"在sub過程中交換之后,B=:"&intBMessageBox.Show(strTmp)EndSub‘添加一個(gè)Button,然后在Click事件的處理程序中寫入代碼如下:PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickDimintXAsInteger=1DimintYAsInteger=2DimstrTmpAsStringstrTmp="在傳呼代碼中引用調(diào)用之前,X=:"&intX&Chr(10)strTmp=strTmp&"在傳呼代碼中引用調(diào)用之前,Y=:"&intY&Chr(10)
‘調(diào)用swapcall過程swapcall(intX,intY)strTmp=strTmp&"在傳呼代碼中引用調(diào)用之后,X=:"&intX&Chr(10)strTmp=strTmp&"在傳呼代碼中引用調(diào)用之后,Y=:"&intYMessageBox.Show(strTmp)EndSub運(yùn)行上面程序,結(jié)果如下:Function過程Function過程是包含在Function語句和EndFunction語句之間的一系列語句塊。每次調(diào)用過程時(shí)都執(zhí)行過程中的語句,從Function語句后的第一個(gè)可執(zhí)行語句開始,到遇到的第一個(gè)EndFunction、ExitFunction或RETurn語句結(jié)束。Function過程與Sub過程相似,但Function過程還向調(diào)用程序返回一個(gè)值。聲明Function過程的語法如下所示:[訪問修飾符]Function過程名([參數(shù)列])As返回類型
…
…EndFunction返回值Function過程有兩種方式返回值:一、它在過程的一個(gè)或多個(gè)語句中給自己的過程名賦值。直到執(zhí)行了ExitFunction或EndFunction語句,控制才返回給調(diào)用程序,如下面的示例所示:[訪問修飾符]Function過程名
([參數(shù)列])As返回類型
'...
過程名
=表達(dá)式
'...EndFunction二、使用RETurn語句指定返回值,并立即將控制返回給調(diào)用程序,如下面的示例所示:[訪問修飾符]Function過程名([參數(shù)列])As返回類型
'...RETurn表達(dá)式
'...EndFunction調(diào)用Function過程調(diào)用Function過程的方法是將其名稱和參數(shù)放在賦值語句的右邊或表達(dá)式中。有時(shí)候,調(diào)用Function過程時(shí),可以不使用它的返回值。這樣,調(diào)用Function過程就像調(diào)用Sub過程相象。Function過程的調(diào)用舉例如下,用于求兩科成績的平均分:PublicFunctionadd(ByValintAAsInteger,ByValintBAsInteger)AsInteger
‘判斷輸入的分?jǐn)?shù)是否是負(fù)數(shù),如果是負(fù)數(shù)則表明是有問題的分?jǐn)?shù),取值為0分
IfintA<=0AndintB<=0Thenadd=0ExitFunctionEndIfIfintA<=0Thenadd=intBEndIfIfintB<=0Thenadd=intAEndIfEndFunctionPrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickDimsngAvgAsSingleDimintX,intYAsIntegerintX=90intY=80sngAvg=add(intX,intY)/2‘將add過程的返回值賦值給sngAvg變量
MessageBox.Show("平均分為:"&sngAvg)EndSub使用數(shù)組作為參數(shù)如果需要將一組數(shù)據(jù)傳遞給過程,可以選擇數(shù)組作為參數(shù),書本P106。舉例如下,說明如何使用普遍數(shù)組作為參數(shù),進(jìn)行過程調(diào)用:PublicFunctionavgAge(ByValintAge()AsInteger)AsSingleDimstrTmpAsString="每個(gè)學(xué)生的年齡是:"DimintSumAsInteger=0DimintIAsInteger=0ForintI=0ToUBound(intAge)'通過UBound函數(shù)取得數(shù)組的最大可用下標(biāo),數(shù)組擁有的元素個(gè)數(shù)為UBound(intAge)+1intSum+=intAge(intI)strTmp=strTmp&intAge(intI)&""
‘intAge(intI)+=1‘使每個(gè)學(xué)生的年齡加1NextstrTmp=strTmp&Chr(10)&"平均年齡是:"&intSum/(UBound(intAge)+1)MessageBox.Show(strTmp)avgAge=0EndFunctionPrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickDimintTmp()AsInteger={18,19,20,21}'定義了intAge數(shù)組用于保存學(xué)生的年齡
avgAge(intTmp)
‘用數(shù)組作為參數(shù)進(jìn)行過程調(diào)用后,顯示原數(shù)組被修改的情況
DimstrTmpAsString="每個(gè)學(xué)生的年齡是:"DimintSumAsInteger=0DimintIAsInteger=0ForintI=0ToUBound(intTmp)intSum+=intTmp(intI)strTmp=strTmp&intTmp(intI)&""NextstrTmp=strTmp&Chr(10)&"平均年齡是:"&intSum/(UBound(intTmp)+1)MessageBox.Show(strTmp)EndSub注意使用數(shù)組作為參數(shù)與之前我們使用其他變量作為參數(shù)的方法幾乎一樣,但是,有一點(diǎn)必須要注意,就算你在參數(shù)聲明時(shí)使用了ByVal關(guān)鍵字,但是,實(shí)際上它并不是值傳遞,而是地址傳遞。
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickDimarrT(2)AsIntegerarrT(0)=1arrT(1)=1MessageBox.Show("調(diào)用前"&arrT(0)&""&arrT(1))add(arrT)MessageBox.Show("調(diào)用后"&arrT(0)&""&arrT(1))EndSubPublicSubadd(ByValarr()AsInteger)arr(0)=2arr(1)=2
‘ReDimarr(5)
比較如果用ByRef的結(jié)果
MessageBox.Show("過程中"&arr(0)&""&arr(1))EndSub可選參數(shù)Optional:Optional關(guān)鍵字用于將一個(gè)參數(shù)聲明為可選的參數(shù)。但要注意,我們可以聲明任意多個(gè)可選參數(shù),但是,如果指明了某一個(gè)參數(shù)為可選的,則在參數(shù)列中,它后面的所有的參數(shù)也必須是可選的。而且,在聲明可選參數(shù)時(shí),必須要給可選參數(shù)一個(gè)默認(rèn)值。
舉例如下,要聲明一個(gè)過程用于求出某個(gè)學(xué)生的總分,但是,在所學(xué)的課程中,有一門“商務(wù)禮儀”的課程和一門“現(xiàn)代經(jīng)濟(jì)與政治”的課程是選修科,也就是說,有些學(xué)生有成績,但有些學(xué)生是沒有成績的:PublicFunctiontotalScore(ByValsngEnglishAsSingle,ByValsngMathAsSingle,OptionalByValsngProtocolAsSingle=0,OptionalByValsngEconomyasAsSingle=0)AsSingle'......'......EndFunction使用參數(shù)數(shù)組通常,在調(diào)用過程時(shí),所包含的參數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 腦血流自體循環(huán)試驗(yàn)
- 滬科版八年級(jí)數(shù)學(xué)上冊(cè)第14章全等三角形14-1全等三角形課件
- 魯教版八年級(jí)數(shù)學(xué)上冊(cè)專項(xiàng)素養(yǎng)綜合練(五)分式方程中的三種新定義型問題課件
- 七年級(jí)下冊(cè)英語五一勞動(dòng)節(jié)作文
- 蘇教版八年級(jí)生物上冊(cè)期末素養(yǎng)綜合測(cè)試(一)課件
- 牛津版小學(xué)六年級(jí)英語語法課
- 蘇科版八年級(jí)數(shù)學(xué)上冊(cè)《第五章平面直角坐標(biāo)》單元測(cè)試卷帶答案
- 湖南省2024年中考語文真題試卷(含答案)
- 遼寧省鞍山市岫巖縣2024-2025學(xué)年八年級(jí)上學(xué)期10月月考英語試卷
- 沙漠之舟課件教學(xué)課件
- 繪本:讓誰先吃好呢
- AUTOCAD完整考試題庫388題(含答案)
- 河南省中小學(xué)高級(jí)教師任職資格評(píng)審講課答辯題目及答案
- 通用版(完整版)鋼結(jié)構(gòu)專項(xiàng)施工方案
- 出租車企業(yè)安全管理人員安全考核題庫(含答案)
- 滾筒式輸送機(jī)的設(shè)計(jì)
- 2023年版一級(jí)建造師-水利工程實(shí)務(wù)電子教材
- 三重一大決策管理細(xì)則
- 世界文化史 簡答題
- 商務(wù)風(fēng)流體漸變年終總結(jié)公司介紹PPT模板
- 爆破作業(yè)單位安全檢查
評(píng)論
0/150
提交評(píng)論