A. VB自學經驗與心得 (VB自學者進)
網路群&飛度編程學社1195277 以下是我博客的一篇文章
如何學好VB
導語:不要老是想著誰「最有錢途」,這些都不是我們應當考慮的,我們要考慮的是怎樣才能真正的精通VB。如果成為了VB的專家,應當很容易賺到錢的。VB程序員為什麼工資低,不是VB不行,是因為大部份VB程序員不行,他們只懂得用控制項,而沒有什麼編程的思想。而VB的初學都只會用控制項和簡單的API就說精通VB了,顯然影響的整個VB在程序界的地位,這些人顯然不能稱為程序員的,只能相當於會使用VB了,就像會Word一樣。如果VB程序員都懂的數據結構,UML等,就完全是另外一回事了。有認為VB功能弱,請注意:仙劍95版就是用VB4做的,還有DirectX SDK7中有個一很好玩的3D游戲,聲音和動畫都非常好,也是用VB寫的。所以VB能做很多東西,只要你想去做。
(1)VB不只是資料庫和報表。不要以為VB就是資料庫和報表,這只是VB強大功能的一小部份。如果這此都搞不清,還是好好的看一下相關的書籍,比在這里問問題有用多了。我以前沒有學過資料庫,只是有些編程的思路,後來學資料庫就非常容易了。我做報表一般用RichTextBox或是From來做,一般都能做的很好,也不用去考慮什麼水晶報表了。
(2)不要迷信於API。API能做很多東西,但有些東西在VB裡面的函數中就有,API只是VB對WindowsSDK的封裝而已。如果想學好API,建議學習SDK。如果VB本身就能很好的支持這個功能,何必還要用API呢。
(3)不要什麼都想著控制項。如果做程序都想著第三方控制項的話,代價是很高的,不僅程序大,安全性也低了很多。其實VB本身帶的控制項已經完全夠用了。
(4)認認真真的把MSDN中關於VB的內容好好看一看,特別是函數和語句,很有用的。
(5)遇到問題不要直接來這里問,自己好好想一想,試著解決這個問題,這雖然在時間上慢了,可是在自身的提高上卻有很大的幫助。
(6)沒事的時候,多研究些語言上的東西,如數據結構和演算法,不要老是想著什麼花哨的東西。這對以後的提高非常有幫助。
如何學好VB程序設計
1、學習程序設計的基本要求
2、VB的功能及特點
3、學習VB程序設計的方法
對學習者知識的要求:
首先,學習程序設計要具備一定的數學基礎,計算機與數學有很大的聯系,綜觀計算機歷史,計算機的數學模型(圖靈機,由Alan Turing提出)和體系結構(由John Von Neuman提出)等都是由數學家提出的。因此,要學習好計算機就要有一定的數學基礎,不過對於初學者來說,在數學基礎方面的要求並不是很高,從我個人的角度來看,有高中數學水平就差不多了。
其次,學習程序設計要有一定的邏輯思維能力,邏輯思維需要長時間的鍛煉,如果你覺得自己在邏輯思維能力上有不足,也沒有關系,因為編寫程序本身也是對邏輯思維的鍛煉,初學程序設計應具備的邏輯基礎可以從高中數學中學到。
學習程序設計基本要求:
熟悉Visual Basic操作環境與設計工具,能設計應用程序界面。
掌握,理解面向對象程序設計基本概念。
掌握VB語言的基礎知識,程序設計的方法。
能閱讀一般難的程序;
能應用編寫一些簡單程序;
具有用Visual Basic開發Windows環境下應用程序的能力和閱讀分析一般難度的VB程序的能力。
Visual Basic 簡介
Visual Basic 是Microsoft 公司開發的Windows 應用程序開發工具,Visual ——"可視化的",是一種開發圖形戶界面(GUI)的方法,使得非計算機專業的人也可以開發出專業的Windows軟體。
Visual Basic繼承了BASIC語言簡單易學的優點,又增加了許多新的功能,它採用面向對象與事件驅動的程序設計思想,使編程變得更加方便、快捷,使用Visual Basic既可以開發個人或小組使用的小型工具,又可以開發多媒體軟體,資料庫應用程序,網路應用程序等大型軟體,是國內外最流行的程序設計語言之一。
英文Visual的意思是"視覺的","可視的Baisc"這個名字可能抽象了點,但實際上它卻是最直觀的編程方法,之所以叫做"可視",你只要看到VB的界面就會明白,實際上你無需編程,就可以完成許多步驟。
在VB中入了控制項的概念,在Windows中控制項的身影無處不在,如按鈕、文本框等。VB把這些控制項模式化,並且每個控制項都有若干屬性用來控制控制項的外觀,工作方法,能夠響應用戶操作(事件)。
這樣你就可以象在畫板上一樣,隨意點幾下滑鼠,一個按鈕就完成了。這些在以前的編程語言下是要經過相當復雜的工作的。
Visual Basic 特點
1、具有面向對象的可視化設計工具
2、事件驅動的編程機制
3、結構化的程序設計語言
4、提供了易學易用的應用程序集成開發環境
5、支持多種資料庫系統的訪問
6、高度可移植化的代碼
7、VB6.0在開發環境上,網路功能等的大大增強。
可視化設計:Visual Basic為用戶提供大量的界面元素(在Visual Basic中稱為控制項對象),例如 "窗體"、"菜單"、"命令按鈕"、"工具按鈕"、"檢查框"等等。用戶只需要利用滑鼠,鍵盤把這些控制項對象拖動到適當的位置,設置它們的大小,形狀,屬性等,就可以設計出所需的應用程序界面。
事件驅動編程:Windows操作系統出現以來,圖形化的用戶界面和多任務多進程的應用程序要求程序設計不能是單一性的,在使用Visual Basic設計應用程序時,必須首先確定應用程序如何同用戶進行交互。(例如發生滑鼠單擊,鍵盤輸入等事件時,用戶必須編寫代碼控制這些事件的響應方法)這就是所謂的事件驅動編程。
程序設計方法概述
1、初期的程序設計
高運行效率,少佔用內存為目標
2、結構化程序設計
程序的可讀性,可維護性為目標
程序=演算法+數據結構+計算機語言+面向過程的程序設計方法
3、面向對象的程序設計(OOP)
降低程序的復雜性,提高軟體的開法效率和改善工作界面為目標
程序=對象+消息+面向對象的程序設計
面向對象的程序設計具有如下的優點:
1、符合人們習慣的思維方法,便於分解大型的復雜多變的問題。由於對象對應於現實世界中的實體,因而可以很自然地按照現實世界中處理實體的方法來處理對象,軟體開發者可以很方便地與問題提出者進行溝通和交流。
2、易於軟體的維護和功能的增減,對象的封裝性及對象之間的鬆散組合,都給軟體的修改和維護帶來了方便。
3、可重用性好。重復使用一個類(類是對象的定義,對象是類的實例化),可以比較方便地構造出軟體系統,加上繼承的方式,極大地提高了軟體開發的效率。
4、與可視化技術相結合,改善了工作界面。隨著基於圖形界面操作系統的流行,面向對象的程序設計方法也將深入人心,它與可視化技術相結合,使人機界面進入GUI時代。
如何學好VB
(1)養成良好的學習習慣
VB程序設計的入門學習並不難,但卻是一個十分重要的過程,因為程序設計思想就在這時形成的,良好的程序設計習慣也在這個階段養成。
(2)學習程序設計要注重理解一些重要的概念。
VB程序設計本身並不復雜。翻開一本程序設計學習的書籍。看到的無非就是變數、函數、條件語句、循環語句等概念,但要真正能進行程序設計,需要深入理解這些概念。因此,在程序入門階段還是應該重視概念的學習。
(3)自己動手編寫程序
程序設計入門階段要經常自己動手編寫程序,親自動手進行程序設計是創造性思維應用的體現,是培養邏輯思維的好方法。因此一定要多動手編寫程序,而且要從小程序開發開始,逐漸提高開發程序的規模。
(4)閱讀。借簽別人設計的好程序
多看別人設計好的程序代碼,包括教材上的例題程序。在讀懂別人程序後,要想他為什麼這么設計,能不能將程序修改完成更多的功能,則可以學到別人優秀的東西,幫助自己提高自身水平。
(5) VB程序設計學習的重點
重點放在思路、演算法、編程構思和程序實現上。
語句只是表達工具,要求堂上積極思考,盡量當堂學懂,並做到靈活應用。
學會利用計算機編程手段分析問題和解決問題。
(6)養成良好的編程習慣
強調可讀性,變數要加註釋;
程序構思要有說明;
學會如何調試程序;
對運行結果要做正確與否的分析。
學好VB程序設計的具體要求:
(1)課前預習,認真聽課並作適當做筆記,課後要認真復習消化所學內容,完成作業。
(2)多寫程序,注重實踐
程序設計課是高強度的腦力勞動,不是聽會的,也不是看會的,而是練會的。
只有自己動手,編寫一些程序,才會有成就感,進而對課程產生興趣,學起來才比較從容;只有當你在編寫大量程序之後,才能獲得真知灼見,感到運用自如。
動手能力的培養是這門課和以往課程最大的不同之處。
(3)上機調試程序應注意的幾點:
上機前應認真把實驗題在用紙上做一做(包括窗體界面設計;事件代碼的編寫等)
每次上機後應總結,把沒有搞清楚的問題記錄下來,請教老師或同學。
平時應多抽課余時間多上機調試程序。注意系統的提示信息,遇到問題,多問幾個為什麼。 、
(4)保持良好的學習心態
要有自信、自強、積極主動學習。
克服畏難情緒,樹立學好程序設計的信心。
B. VB編程的必備技巧
對編程者來說,VB很容易上手,但要深入、靈活地駕馭它還要下一番功夫。筆者在這里介紹幾稿猜個較為典型的編程技巧,希望能對廣大VB愛好者有所幫助。
一.怎樣創建自定義的游標
1.當在設計一個應用程序時,Visual Basic允許程序員將許多控制項的MousePointer屬性設計成12個預先定義好的滑鼠游標之一。然而,有些程序員或許會希望顯示一個預定義形狀之外的游標。本文說明如何創建一個不同的滑鼠指針(游標),包括為一個沒有MousePointer屬性的控制項創建游標。
要在Visual Basic應用程序中將游標(滑鼠指針)改變成個不同的形狀,可以添加代碼來改變希望監視的控制項的MouseMove和DragOver事件。
MouseMove事件所包含的代碼用於觸發該控制項的Drag方法。當滑鼠在被選中的控制項上移動的時候,輪流顯示新的滑鼠指針。當滑鼠指針離開該控制項時,則DragOver事件被觸發。在Visual Basic程序中,可以重新復位此Drag屬性,以便以前的滑鼠指針能夠被再次顯示出來。
2.下面的樣常式序實現當滑鼠指針移動到一個文件列表框控制項上時,將其改變成不同的形狀。
首先採用預設的方碧敬宏法建立Form1。在Form1上添加一個文件列表框控制項,採用預設的方法建立File1。將File1控制項的DragIcon屬性設置為所選擇的.ICO文件。
將如下代碼添加到File1的MouseMove事件中:
Private Sub File1-MouseMove(ButtonAs
Integer, Shift As Integer, X As Single, Y As Single)
File1.Drag 1 ''icon on
End Sub
---- 將如下代碼添加到Form1的DragOver事件中:
Private Sub Form-DragOver(Source As Control,
X As Single, Y As Single, State As Integer)
File1.Drag 0 ′icon off
End Sub
按下F5功能鍵執行此程序。得到的運行結果是:將滑鼠指針移動到該文件列表框控制項上時,程序將把所選中的.ICO文件作為預設的滑鼠游標;將滑鼠指針離開該控制項時,游標則會自動恢復為預設的形狀。
二.怎樣在窗體上點滑鼠右鍵產生一個彈出式選單(PopUp Menu)?
大家都知道,在Windows95/98/2000的桌面和許多流行軟體的視窗中,當我們點滑鼠右鍵時,會在滑鼠的當前位置彈出一個快捷選單。許多愛好編程的朋友是不是也希望能在自己的程序里有類似的功能呢?其實,這並不困難。筆者經過一番努力,在VB下找出一個通用的方法,供大家分享。
要實現上述功能,需分兩個步驟:
1. 利用VB的選單我器(Menu Editor)我你希望彈出的選單及子選單,注意,要將選單的Visible屬性設置為:False。
2. 在窗體(Form1)的MouseDown事件中編寫程序,來激發我好的選單,假設選單名為PopMenu,程序源碼如下:
Private Sub Form-MouseDown
(Button As Integer, Shift As Integer,
X As Single, Y As Single)
If Button = vbRightButton Then
PopMenu.Visible = True
PopupMenu PopMenu
End If
End Sub
上述方法是針對窗體的,我們也可以針對任意控制項,用滑鼠右鍵點擊控制項時,也彈出一個快捷選單。方法也很簡單,只要把上述代碼放到相應控制項的MouseDown事件中,就可以了。
三.怎樣動態地在窗體上判斷某區域內是否有控制項存在?
在筆者的一個小程序中,想在窗體的某個區域輸出數據,這就要求在這個區域內不能有其他控制項存在,那麼,怎麼才能知道在窗體的某個區域內,是否有控制項存在呢?
為了判斷在窗體的悔冊某個區域中,是否含有控制項,我們可以利用以下VB程序來實現:
Function GetControl(x1 As Single, y1 As Single,
x2 as Single, y2 as Single) As Control
Dim Control as Control
For Each Control In Form1
With Control
If (x1 〈= .Left) And (x2 〉= .Left) And _
(y1 〈= .Top) And (y2 〉= .Top) Or _
(x1 〈=.Left + Width) And (x2 〉= .Left + Width) And _
(y1 〈= .Top) And (y2 〉= .Top) Or _
(x1 〈= .Left) And (x2 〉= Left) And _
(y1 〈= .Top + Height) And (y2 〉= .Top + Height) Or _
(x1 〈= . Left + Width) And (x2 〉= .Left + Width) And _
(y1 〈= .Top + Height) And (y2 〉= .Top + Height) Then
Set GetControl = Control
Exit Function
End If End With
Next
Set GetControl = Nothing
End Function
註:(x1, y1)和(x2, y2)分別為選定矩形區域的左上角和右下角點的坐標值。
該程序通過計算窗體上所有控制項的四個角的位置來判斷控制項是否與選定區域相交,並返回相交的控制項。