在做學生管理系統(tǒng)中,遇到了太多太多的問題,發(fā)現(xiàn)了VB的學習是多么的不牢固,即使當初耗費了大量的時間。從現(xiàn)在開始,將把自己遇到的那些模糊或者不懂的知識總結出來,查漏補缺,歡迎大家提出批評指正!
VB中的調(diào)用主要針對Sub子過程和自定義函數(shù)的調(diào)用。不論是Sub子過程還是函數(shù)過程,都是將一段完整的功能獨立出來,建立一個過程。在主調(diào)程序中通過調(diào)用過程,將需要計算的參數(shù)(實參)傳遞給過程;在過程中求得結果后再講結果返回到主調(diào)程序,從而實現(xiàn)程序的功能,并使程序結構更為清晰、簡潔。
一、Sub子過程的調(diào)用
在程序中要調(diào)用Sub子過程的方法有如下兩種:
Call 過程名 (實參列表) 或 過程名 [實參列表]
調(diào)用Sub子程序的程序段稱為主調(diào)程序。在主調(diào)程序中調(diào)用Sub子過程時,將使程序流程自動轉向被調(diào)用的Sub子過程。在過程執(zhí)行完最后一行語句 End Sub 之后,程序流程將自動返回到主調(diào)程序語句的下一行繼續(xù)進行,如下圖所示:
在調(diào)用過程的的語句中,不僅要求實參個數(shù)與被調(diào)用過程形參個數(shù)一致,而且要求實參表的參數(shù)類型、參數(shù)順序與被調(diào)用過程形參表的參數(shù)完全一致。
二、自定義函數(shù)的調(diào)用形式如下:
函數(shù)名 (實參列表)
實參列表有變量名、數(shù)組名、數(shù)組元素名、常熟或表達式組成,在調(diào)用時,實參和形參的數(shù)據(jù)類型、順序、個數(shù)必須一一對應。如下圖所示:
函數(shù)調(diào)用只能出現(xiàn)在表達式中,其功能是求得到函數(shù)的返回值。
從上面兩張圖中可以看出,Sub子過程和函數(shù)過程在傳遞需要計算的參數(shù)時(實參a、b傳遞給形參x、y),兩者并沒有什么不同。但在返回結果方面,因為函數(shù)過程可以通過函數(shù)名返回結果,因此,在函數(shù)過程中一般只需要設置接收計算參數(shù)的形參即可(圖2的形參為x、y);Sub子過程卻有所不同,由于Sub子過程名只代表名字,沒有返回值,所以必須另外設置專門的形參用于返回結果(圖1的形參為z1、z2)。
那么,在解決一個問題時,是使用Sub子過程還是使用函數(shù)過程呢?從原則上來說,解決一個問題,既可以使用Sub子過程,也可以使用函數(shù)過程。如果是需要過程只有一個返回值,一般習慣使用函數(shù)過程,通過函數(shù)名來返回結果;如果不是為了求一個值,而是完成一些操作,或者需要返回多個值,則使用Sub子過程比較方便,此時,可以通過設置與返回值個數(shù)相符的形參個數(shù)來得到返回結果。
補充:多窗體間數(shù)據(jù)的訪問與傳遞
①直接訪問其他窗體的控件屬性
在一個窗體中可以直接訪問另一個窗體上控件的屬性,訪問時要指明是哪一個窗體,形式為:
另一窗體名.控制名.屬性 如Text1.Text=Form1.Text1.Text
②直接訪問其他窗體中聲明的全局變量
在窗體的通用聲明區(qū)用Public關鍵字聲明的變量,可以被工程中其他的窗體或模塊所使用.需要注意的是,在使用窗體的全局變量時,必須帶有窗體名。 格式為: 窗體名.變量名
③在標準模塊中聲明全局變量,實現(xiàn)數(shù)據(jù)的共享
為了實現(xiàn)窗體間的數(shù)據(jù)互訪,還可以在標準模塊中聲明全局變量,并以該全局變量作為交換數(shù)據(jù)的場所。 例如:在標準模塊中聲明:Public Pubx As Integer ,此時在一個窗體中對Pubx的賦值可以被另外窗體使用。