學生檔案管理系統

前言

第一章 為什麼要開發一個學生檔案管理系統?

第二章 計算機已經成為我們學習和工作的得力助手

1.1 在中國小中用計算機管理學生檔案的意義

1.2 為將來學校上網做好準備

1.4 學生檔案的設計分析

第三章 怎樣開發一個學生檔案管理系統?

2.1 編程環境的選擇

2.2 關係型資料庫的實現

2.3 二者的結合(DBA)

第四章 Windows下的Visual Basic 編程環境簡介

3.1 告別“hello world"的年代

3.2 面對對象的編程

3.3 實現選單選項

3.4 實現工具列

3.5 幫助

3.6關於系統

第五章 使用Access2000 實現關係型資料庫

4.1 資料庫的概念

4.2 新建一個資料庫

4.3 修改已建的資料庫

4.4 實現資料庫之間的聯繫

第五章 系統總體規劃

5.1 系統功能

5.2 流程圖

第六章 系統具體實現

6.1 用戶界面的實現

6.1.1 封面

6.1.2 主界面

6.1.3 幫助系統

6.2 資料庫的實現

6.2.1 學籍資料庫

6.2.2 學生成績庫

6.2.3 課程庫

6.3 與VB的連線

第七章 結束語

第八章 主要參考文獻

附錄

--------------摘要--------------

學生檔案管理系統是典型的信息管理系統(MIS),其開發主要包括後台資料庫的建立和維護以及前端應用程式的開發兩個方面。對於前者要求建立起數據一致性和完整性強、數據安全性好的庫。而對於後者則要求應用程式功能完備,易使用等特點。

經過分析,我們使用 MICROSOFT公司的 VISUAL BASIC開發工具,利用其提供的各種面向對象的開發工具,尤其是數據視窗這一能方便而簡潔操縱資料庫的智慧型化對象,首先在短時間內建立系統套用原型,然後,對初始原型系統進行需求疊代,不斷修正和改進,直到形成用戶滿意的可行系統。

關鍵字:控制項、窗體、域。

--------------ABSTRACT--------------

The system of managing student file is a typical application of managing information system (know as MIS),which mainly includes building up data-base of back-end and developing the application interface of front-end. The former required consistency and integrality and security of data. The later should make the application powerful and easily used.

By looking up lots of datum, we selected Visual Basic presented by Microsoft because of its objective tools in Win32. VB offered a series of ActiveX operating a data-base. It can give you a short-cut to build up a prototype of system application. The prototype could be modified and developed till users are satisfied with it.

Keywords: ActiveX , Form , Field .

--------------前言--------------

學生檔案管理系統是一個教育單位不可缺少的部分,它的內容對於學校的決策者和管理者來說都至關重要,所以學生檔案管理系統應該能夠為用戶提供充足的信息和快捷的查詢手段。但一直以來人們使用傳統人工的方式管理檔案檔案,這種管理方式存在著許多缺點,如:效率低、保密性差,另外時間一長,將產生大量的檔案和數據,這對於查找、更新和維護都帶來了不少的困難。

隨著科學技術的不斷提高,計算機科學日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領域並發揮著越來越重要的作用。

作為計算機套用的一部分,使用計算機對學生檔案信息進行管理,具有著手工管理所無法比擬的優點.例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優點能夠極大地提高學生檔案管理的效率,也是企業的科學化、正規化管理,與世界接軌的重要條件。

因此,開發這樣一套管理軟體成為很有必要的事情,在下面的各章中我們將以開發一套學生檔案管理系統為例,談談其開發過程和所涉及到的問題及解決方法。

--------------------下面就讓我們開始正文的介紹

第一章

為什麼要開發一個學生檔案管理系統?

計算機已經成為我們學習和工作的得力助手:

今天,計算機的價格已經十分低廉,性能卻有了長足的進步。它已經被套用於許多領域,計算機之所以如此流行的原因主要有以下幾個方面:

首先,計算機可以代替人工進行許多繁雜的勞動;

其次,計算機可以節省許多資源;

第三,計算機可以大大的提高人們的工作效率;

第四,計算機可以使敏感文檔更加安全,等等。

在中國小中用計算機管理學生檔案的意義

現在我國的中國小校中檔案的管理水平還停留在紙介質的基礎上,這樣的機制已經不能適應時代的發展,因為它浪費了許多人力和物力,在資訊時代這種傳統的管理方法必然被計算機為基礎的信息管理所取代。

我作為一個計算機套用的本科生,希望可以在這方面有所貢獻。改革的總設計師鄧小平同志說過“科學技術是第一生產力",我希望能用我四年的所學編制出一個實用的程式來幫助中國小進行更有效的學籍管理。

歸納起來,好處大約有以下幾點:

1. 可以存儲歷屆的學生檔案,安全、高效;

2. 只需一到二名檔案錄入員即可作業系統,節省大量人力;

3. 可以迅速查到所需信息。

為將來學校上網做好準備

跟據1999年中國電信的調查報告顯示我國的上網人數已達到890萬,網際網路已經十分普及,學校往界的畢業生希望能在世界的任何一個角落查到自己校友的信息,本系統為學校將來的上網作了先期工作,比如資料庫的建立。

學生檔案的設計分析

根據實際情況,我們使用原型法(Rapid Prototyping)即以少量代價快速地構造一個可執行的軟體系統模型。使用戶和開發人員可以較快地確定需求,然後採用循環進化的開發方式,對系統模型作連續的精化,將系統需具備的性質逐漸增加上去,直到所有的性質全部滿足。此時模組也發展成為最終產品了。

第二章

怎樣開發一個學生檔案管理系統?

編程環境的選擇

微軟公司的Visual Basic 6.0是Windows應用程式開發工具,使目前最為廣泛的、易學易用的面向對象的開發工具。Visual Basic提供了大量的控制項,這些控制項可用於設計界面和實現各種功能,減少了編程人員的工作量,也簡化了界面設計過程,從而有效的提高了應用程式的運行效率和可靠性。故而,實現本系統VB是一個相對較好的選擇。

關係型資料庫的實現

Access2000 就是關係資料庫開發工具,資料庫能匯集各種信息以供查詢、存儲和檢索。Access 的優點在於它能使用數據表示圖或自定義窗體收集信息。數據表示圖提供了一種類似於 Excel 的電子表格,可以使資料庫一目了然。另外,Access 允許創建自定義報表用於列印或輸出資料庫中的信息。Access也提供了數據存儲庫,可以使用桌面資料庫檔案把資料庫檔案置於網路檔案伺服器,與其他網路用戶共享資料庫。Access 是一種關係資料庫工具,關係資料庫是已開發的最通用的資料庫之一。如上所述,Access 作為關係資料庫開發具備了許多優點,可以在一個數據包中同時擁有桌面資料庫的便利和關係資料庫的強大功能。

二者的結合(DBA)

微軟的JET資料庫引擎提供了與資料庫打交道的途徑,我們是通過它以及Visual Basic 來訪問資料庫並對其進行各種操作。Visual Basic、Access以及其他微軟的軟體產品都是通過共用JET資料庫引擎,從而給用戶提供了豐富的數據類型。

DATA 控制項在資料庫中的信息與將信息顯示給用戶看的Visual Basic程式之間架起了一座橋樑。我們可以設定DATA控制項的各個屬性,告訴它要調用那個資料庫的哪個部分。預設情況下,DATA控制項根據資料庫中的一個或多個數據表建立一個dynaset-type(動態集合)類型的記錄集合。一個記錄集合是動態的也就意味著,當原來的數據表中的容改變了以後,該記錄集合中的記錄也會隨之改變。DATA控制項還提供了用來瀏覽不同記錄的各種跳轉按鈕。將DATA控制項放置在窗體中之後,我們還必須在該控制項與要處理的資料庫之間建立聯繫。

第三章

Visual Basic應用程式基本的構建塊是用戶所創建的對象,每一個對象都具有一些特性和行為(屬性、事件和 方法)。開發人員可以最有效利用所創建的每一個對象。使用應用程式具有可通用性可說擴展性和強有力的功能。

Visual Basic套用由一系列對象組成,包括有函式、選單、函式、結構和數據視窗、用戶對象、用戶事件等等,對象中又包含若干控制項如命令按鈕、單行編輯器等這些對象和控制項都可在許多套用中重複使用。

實現選單選項

選單是程式最重要的特性之一,大多數程式都依賴一個定義良好的選單使程式易於使用和維護,Visual Basic也提供了強大的創建選單功能是程式更加標準。

您可以使用Visual Basic的Application Wizard也可以使用Visual Basic 的選單編輯器建立選單或者修改已經存在的選單。

實現工具列

CoolBar控制項與Office97種看到的CoolBar是類似的。CoolBar就是一個可以在窗體上浮動的工具,同時也是其他ActiveX的容器。通過在CoolBar中遷入其他空間你局可以向用戶提供更好的靈活性和義用性。

Toolbar 是工具條控制項,是實現工具條的主體。其中的按鈕可以顯示圖像和標題,並按功能分組或加入分隔設定,還可以圍棋設定滑鼠停留在其上顯示的提示字元。Toolbar也是一個控制項容器且具有Style屬性,並可以為其增加下拉按鈕和平滑按鈕等。

選擇“工程"下拉選單中的“部件"選項,顯示“部件"對話框。在“控制項"選項卡列表中選擇“Microsoft Windows Common Controls 6.0"後工具相中增加改控制項。其屬性及對象如下:

1. Align屬性定義工具條在窗體中的位置

2. ToolTipText屬性是字元串類型,定義控制項的提示字元

3. Style屬性定義按鈕外觀。

4. ImageList屬性定義與數據條對應的ImageList控制項名,該控制項定義工具條按鈕顯示的圖像。

5. HotImangeList屬性設定一個ImageList控制項名,該控制項定義按鈕獲得熱點時顯示的圖像。

6. DisabledImageList屬性定義工具條按鈕無效時顯示的圖像。

創建工具條包括ImageList和Toolbar控制項

ImageList用於為其他控制項提供圖像庫,將ImageList控制項加入到工具箱的操作於前述Toolbar控制項相同。

幫助

專業水平的軟體通常都帶有在線上幫助功能。無論寫出來的程式是要給大量的用戶使用,還是僅僅局限於公司內部有限的使用者,我們都應該為用戶提供詳細的、易於理解的在線上幫助文檔。微軟的Help Workshop4.0 是一套獨立於Visual Basic 的用來協助我們創建、運行於32位Windows 作業系統下的幫助檔案的工具。使用它我們可以為我們編寫的應用程式生成一組幫助檔案。

關於版本

為了是程式顯得更具有專業風格,首先可以在其中加入通常的應用程式信息。這些信息包括公司名稱、版本號、修訂號以及其他類似信息。Visual Basic允許你使用APP對象來保存這些信息,APP對象是一個預定義對象,不需要在程式中創建它。APP對象的大多數屬性被應用程式用來提供常規的信息,通過使用這些APP提供的屬性,可以在應用程式和用戶之間交流重要信息,在項目屬性框中可以設定它的屬性。

第四章

使用Access2000 實現關係型資料庫

資料庫的概念

資料庫是一種存儲數據並對數據進行操作的工具。資料庫的作用在於組織和表達信息,簡而言之,資料庫就是信息的集合。計算機的資料庫可以分為兩類:非關係資料庫(flat-file)和關係資料庫(relational)。關係資料庫中包含了多個數據表的信息,資料庫含有各個不同部分的術語,象記錄、域等。

新建一個資料庫

創建任何一個資料庫的第一步是仔細的規劃資料庫,設計必須是靈活的、有邏輯的。創建一個資料庫結構的過程被認為是數據模型設計。

1. 標識需要的數據;

2. 收集被標識的欄位到表中;

3. 標識主關鍵字欄位;

4. 繪製一個簡單的數據圖表;

5. 規範數據;

6. 標識指定欄位的信息;

7. 創建物理表。

修改已建的資料庫

資料庫的修改分為:添加、編輯和刪除記錄。這三種操作均可由Visual Basic 創建的程式來完成,下面的章節將詳細描述實現的具體方法。

實現資料庫之間的聯繫

資料庫之間的關係指明兩個庫之間共享一個共同的關鍵字值。一個連線是指一種虛擬的表,這種表是在當用戶要求從相互關聯的各個不同的表中獲取信息時建立的,關鍵欄位用於在相互連線的不同表中查找匹配的記錄。一個更高級的連線形式稱為自連線。這種連線是指一個表被連線到它自己的一個欄位,或在不同的紀錄中由重複數據的組合欄位。資料庫中有三種不同類型的關鍵字:主關鍵字、組合關鍵字和外關鍵字。在表中使用的關鍵字類型用於描述庫表示什麼以及在資料庫中如何與其它的庫建立關係。

第五章

系統總體規劃

系統功能

1. 可以進行文本操作;

2. 添加一個資料庫項目;

3. 刪除一個資料庫項目;

4. 修改一個資料庫項目;

5. 查詢信息;

6. 察看課程表。

流程圖

第六章

系統具體實現

用戶界面的實現

6.1.1 封面

具體實現見 圖_6.1.1

圖_6.1.1

6.1.2 主界面

具體實現見.圖_6.1.2

圖_6.1.2

主界面包含三方面的內容,以下一一介紹:

1.記錄操作

打開記錄操作,進入記錄操作選單項分別由檔案、視圖及幫助三個選項。

1.1檔案包括:新建

打開

打開寫字板---------如圖<6.1.4> (源程式見附錄清單6.1 )

保存

另外儲存

列印

退出

<圖6.1.4>

1.2視圖包括:狀態條

工具列

背景顏色

顯示

課程表---------如圖<6.1.5>

文本編輯器

網路瀏覽

<圖6.1.5>

1. 3幫助包括:內容

關於幫助

2.記錄操作

打開記錄操作進入記錄操作選項頁分別由瀏覽記錄、查找等三個選項組成。

2.1瀏覽記錄:

學生學籍庫

課程庫

成績庫

2.2查找記錄

2.3備註

3.系統信息

打開系統信息進入選項頁分別由系統信息、信息採集等組成。

6.1.3 幫助系統

具體實現見6.1.3

圖6.1.3

資料庫的實現

6.2.1學籍資料庫

學籍資料庫里存儲了學生的檔案包括:學號、姓名、年齡等 表如<6.2.6>

列名(中文)列名(英文)數據類型寬度小數點位數是否為空姓名Name Date8No學號CodeInteger6No性別SexDate2No年齡AgeDate6No民族NationDate6No政治面貌Visage...Date2...Yes...家庭住址AddressDate10No備註RecordDate15No 表<6.2.6>

學籍模組:

該模組主要完成學生基本信息的錄入、刪除 、更新等功能。在此模組中定義了八個域名來進行學生的信息存儲。如果用戶修改某一紀錄中的某一項,可單添加按鈕進行學生記錄的編輯,此視窗使用數據視窗的FREEDOM風格(典型的錄入界面)。該種風格特點是列標題緊挨著數據列在此視窗還可以增加新學生紀錄。

6.2.2成績資料庫

成績資料庫里存儲了學生的成績包括:學號、成績、等如表<6.2.7 >

列名(中文)列名(英文)數據類型寬度小數點位數是否為空姓名Name Date8No學號CodeInteger6No成績ScoreDate10No備註RecordDate15No 表<6.2.7>

成績模組:

該模組主要完成學生成績的基本信息的錄入、刪除 、更新等功能。在此模組中定義了四個域名來進行學生的信息存儲。

6.2.3課程資料庫

課程資料庫利存儲了課程的信息:課程名、作者、出版社等如表<6.2.8>

列名(中文)列名(英文)數據類型寬度小數點位數是否為空課程IDCourseDate8No課程名NameDate15No出版社PublisherDate20No作者ScoreDate18No備註RecordDate15No 表<6.2.8>

課程模組:

該模組主要完成存儲課程的所有信息及錄入、刪除 、更新等功能

與VB的連線

Visual Basic提供了與底層資料庫系統緊密的連線。Visual Basic 支持不同的關係資料庫管理系統並充分發揮每一個資料庫的特長。生成獨立套用或脫離伺服器運行的服務以上的套用,Visual Basic連線資料庫的方式有兩種:

·通過使用Visual Basic的 DATA控制項。

·通過使用由Visual Basic提供的專用的直接與資料庫相連的接口

第七章

結束語

經過三個多月的設計和開發,中國小檔案管理系統基本開發完畢。其功能基本符合用戶需求,能夠完成學生學籍的存儲和成績的查詢以及各類相關報表的列印。並提供部分系統維護功能,使用戶方便進行數據備份和恢復、數據刪除。,對於數據的一致性的問題也通過程式進行了有效的解決。

但是由於畢業設計時間較短,所以該系統還有許多不盡如人意的地方,比如在線上文檔比較少,用戶界面不夠美觀,出錯處理不夠等多方面問題。這些都有待進一步改善。

附錄程式清單及注釋

程式清單6.1

Option Explicit

Dim FileName As String '檔案名稱,用於打開、保存檔案

Dim UndoString As String '用於 Undo 操作

Dim UndoNew As String '用於 Undo 操作

Private Sub ImgUndoDisable()

'禁用“Undo"按鈕

UndoString = ""

UndoNew = ""

ImgUndo.Enabled = False

ImgUndo.Picture = ImageDisable.ListImages("Undo").Picture

End Sub

Private Sub ImgUndoEnable()

'有效“Undo"按鈕

ImgUndo.Enabled = True

ImgUndo.Picture = ImageUp.ListImages("Undo").Picture

End Sub

Private Sub Check_ImgPaste()

'設定貼上按鈕

If Len(Clipboard.GetText) > 0 Then

ImgPaste.Enabled = True

ImgPaste.Picture = ImageUp.ListImages("Paste").Picture

Else

ImgPaste.Enabled = False

ImgPaste.Picture = ImageDisable.ListImages("Paste").Picture

End If

End Sub

Private Sub Check_ImgCutCopy()

'設定剪下、複製按鈕

If Text1.SelLength > 0 Then

ImgCut.Enabled = True

ImgCut.Picture = ImageUp.ListImages("Cut").Picture

ImgCopy.Enabled = True

ImgCopy.Picture = ImageUp.ListImages("Copy").Picture

Else

ImgCut.Enabled = False

ImgCut.Picture = ImageDisable.ListImages("Cut").Picture

ImgCopy.Enabled = False

ImgCopy.Picture = ImageDisable.ListImages("Copy").Picture

End If

End Sub

Private Sub BackColor_Click()

CommonDialog1.ShowColor

Text1.BackColor = CommonDialog1.Color

End Sub

Private Sub Box_Click()

'顯停工具列

If Box.Checked Then

'將停顯工具列

Box.Checked = False

CoolBar1.Visible = False

Else

Box.Checked = True

CoolBar1.Visible = True

End If

Form_Resize '重新調整控制項位置

End Sub

Private Sub Close_Click()

Dim FileNum As Integer

If Len(FileName) > 0 Then

'有輸入檔案名稱

FileNum = FreeFile() '獲得可用檔案號

Open FileName For Output As FileNum '打開輸出檔案

'如果無指定檔案,則創建新檔案

Print #FileNum, Text1.Text '輸出文本

Close FileNum '關閉檔案

End If

Text1.Text = ""

FileName = ""

End Sub

Private Sub ComboSize_Click()

Text1.FontSize = Val(ComboSize.Text)

End Sub

Private Sub ComboFont_Click()

Text1.FontName = ComboFont.Text

End Sub

Private Sub Copy_Click()

Clipboard.SetText Text1.SelText '複製文本到剪裁板

End Sub

Private Sub Cut_Click()

Clipboard.SetText Text1.SelText '複製文本到剪裁板

Text1.SelText = "" '清選擇的文本

End Sub

Private Sub DataTime_Click()

Text1.SelText = Now

End Sub

Private Sub Delete_Click()

Text1.SelText = "" '清選擇的文本

End Sub

Private Sub Edit_Click()

'當程式顯示“編輯"子選單前,觸發該程式

If Text1.SelLength > 0 Then

'文本框中有選中的文本

Cut.Enabled = True

Copy.Enabled = True

Delete.Enabled = True

Else

Cut.Enabled = False

Copy.Enabled = False

Delete.Enabled = False

End If

If Len(Clipboard.GetText()) > 0 Then

'剪裁板中有文本數據

Paste.Enabled = True

Else

'沒有可貼上的文本

Paste.Enabled = False

End If

End Sub

Private Sub Exit_Click()

Unload Me

End Sub

Private Sub FindText_KeyPress(KeyAscii As Integer)

Dim BeginPos As Long

If KeyAscii = 13 Then

BeginPos = InStr(1, Text1.Text, FindText.Text, vbTextCompare)

If BeginPos > 0 Then

Text1.SelStart = BeginPos - 1

Text1.SelLength = Len(FindText.Text)

End If

End If

End Sub

Private Sub Fontcolor_Click()

CommonDialog1.ShowColor

Text1.ForeColor = CommonDialog1.Color

End Sub

Private Sub Form_Load()

Dim i As Integer

'載入圖像

ImgNew.Picture = ImageUp.ListImages("New").Picture

ImgOpen.Picture = ImageUp.ListImages("Open").Picture

ImgSave.Picture = ImageUp.ListImages("Save").Picture

ImgUndo.Picture = ImageDisable.ListImages("Undo").Picture

Check_ImgPaste

Check_ImgCutCopy

'載入系統字型

For i = 0 To Screen.FontCount - 1

ComboFont.AddItem Screen.Fonts(i)

Next i

End Sub

Private Sub Form_Resize()

Dim TextTop As Long

'修改工具條大小

CoolBar1.Top = Me.ScaleTop

?????????????????????????????

??????????????????????????????????

???????????

????????????????????????????

??????????

????????????????????????????????????????????

????????

???????????????????

??????????

?????????????????????????????????????

???????????????? Me.ScaleLeft

Text1.Width = Me.ScaleWidth

If Me.ScaleHeight > CoolBar1.Height Then

Text1.Height = Me.ScaleHeight - TextTop

Else

Text1.Height = 0

End If

End Sub

Private Sub ImgCopy_Click()

Copy_Click '複製

Check_ImgPaste

Check_ImgCutCopy

End Sub

Private Sub ImgCopy_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

'“按下"按鈕

If Button = 1 Then

ImgCopy.Picture = ImageDown.ListImages("Copy").Picture

End If

End Sub

Private Sub ImgCopy_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Label1 = "將選擇的文本複製到剪裁板"

'判斷滑鼠位置,顯示不同圖像

If Button = 1 And (X > 0 And X < ImgNew.Width And Y > 0 And Y < ImgNew.Height) Then

ImgCopy.Picture = ImageDown.ListImages("Copy").Picture

ElseIf Button = 1 Then

ImgCopy.Picture = ImageUp.ListImages("Copy").Picture

End If

End Sub

Private Sub ImgCopy_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 1 Then

'“抬起"按鈕

ImgCopy.Picture = ImageUp.ListImages("Copy").Picture

End If

End Sub

Private Sub ImgCut_Click()

'If Text1.SelLength > 0 Then

Cut_Click '剪下

Check_ImgPaste

Check_ImgCutCopy

'End If

End Sub

Private Sub ImgCut_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 1 Then

'“按下"按鈕

ImgCut.Picture = ImageDown.ListImages("Cut").Picture

End If

End Sub

Private Sub ImgCut_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Label1 = "剪下選擇的文字到剪裁板"

'判斷滑鼠位置,顯示不同圖像

If Button = 1 And (X > 0 And X < ImgNew.Width And Y > 0 And Y < ImgNew.Height) Then

ImgCut.Picture = ImageDown.ListImages("Cut").Picture

ElseIf Button = 1 Then

ImgCut.Picture = ImageUp.ListImages("Cut").Picture

End If

End Sub

Private Sub ImgCut_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 1 Then

'“抬起"按鈕

ImgCut.Picture = ImageUp.ListImages("Cut").Picture

End If

End Sub

Private Sub ImgNew_Click()

New_Click

End Sub

Private Sub ImgNew_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 1 Then

'“按下"按鈕

ImgNew.Picture = ImageDown.ListImages("New").Picture

End If

End Sub

Private Sub ImgNew_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Label1 = "創建新檔案" '修改提示信息

'判斷滑鼠位置,顯示不同圖像

If Button = 1 And (X > 0 And X < ImgNew.Width And Y > 0 And Y < ImgNew.Height) Then

ImgNew.Picture = ImageDown.ListImages("New").Picture

ElseIf Button = 1 Then

ImgNew.Picture = ImageUp.ListImages("New").Picture

End If

End Sub

Private Sub ImgNew_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 1 Then

'“抬起"按鈕

ImgNew.Picture = ImageUp.ListImages("New").Picture

End If

End Sub

Private Sub ImgOpen_Click()

Open_Click

End Sub

Private Sub ImgOpen_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

'“按下"按鈕

If Button = 1 Then

ImgOpen.Picture = ImageDown.ListImages("Open").Picture

End If

End Sub

Private Sub ImgOpen_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Label1 = "選擇檔案名稱並打開檔案"

'判斷滑鼠位置,顯示不同圖像

If Button = 1 And (X > 0 And X < ImgNew.Width And Y > 0 And Y < ImgNew.Height) Then

ImgOpen.Picture = ImageDown.ListImages("Open").Picture

ElseIf Button = 1 Then

ImgOpen.Picture = ImageUp.ListImages("Open").Picture

End If

End Sub

Private Sub ImgOpen_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 1 Then

'“抬起"按鈕

ImgOpen.Picture = ImageUp.ListImages("Open").Picture

End If

End Sub

Private Sub ImgPaste_Click()

Paste_Click '貼上

End Sub

Private Sub ImgPaste_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 1 Then

'“按下"按鈕

ImgPaste.Picture = ImageDown.ListImages("Paste").Picture

End If

End Sub

Private Sub ImgPaste_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Label1 = "貼上文本到當前游標位置"

'判斷滑鼠位置,顯示不同圖像

If Button = 1 And (X > 0 And X < ImgNew.Width And Y > 0 And Y < ImgNew.Height) Then

ImgPaste.Picture = ImageDown.ListImages("Paste").Picture

ElseIf Button = 1 Then

ImgPaste.Picture = ImageUp.ListImages("Paste").Picture

End If

End Sub

Private Sub ImgPaste_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 1 Then

???????????

??????????????????????????????????????????????????????????????

??????????

???????

???????????????????????????

?????????????????????????????????

????

?????????????????????????????

?????????

?????????????????????????????????????

????????????????eName For Output As FileNum '打開輸出檔案

'如果無指定檔案,則創建新檔案

Print #FileNum, Text1.Text '輸出文本

Close FileNum '關閉檔案

ImgUndoDisable

Else

MsgBox "不能保存無名檔案" + Chr(13) + Chr(10) + "請選擇“檔案"選單的“保存"項", , "警告"

End If

End Sub

Private Sub ImgSave_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 1 Then

ImgSave.Picture = ImageDown.ListImages("Save").Picture

End If

End Sub

Private Sub ImgSave_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Label1 = "保存當前檔案"

'判斷滑鼠位置,顯示不同圖像

If Button = 1 And (X > 0 And X < ImgNew.Width And Y > 0 And Y < ImgNew.Height) Then

ImgSave.Picture = ImageDown.ListImages("Save").Picture

ElseIf Button = 1 Then

ImgSave.Picture = ImageUp.ListImages("Save").Picture

End If

End Sub

Private Sub ImgSave_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 1 Then

'“抬起"按鈕

ImgSave.Picture = ImageUp.ListImages("Save").Picture

End If

End Sub

Private Sub ImgUndo_Click()

Text1.Text = UndoString

End Sub

Private Sub ImgUndo_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 1 Then

'“按下"按鈕

ImgUndo.Picture = ImageDown.ListImages("Undo").Picture

End If

End Sub

Private Sub ImgUndo_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Label1 = "取消當前操作"

'判斷滑鼠位置,顯示不同圖像

If Button = 1 And (X > 0 And X < ImgNew.Width And Y > 0 And Y < ImgNew.Height) Then

ImgUndo.Picture = ImageDown.ListImages("Undo").Picture

ElseIf Button = 1 Then

ImgUndo.Picture = ImageUp.ListImages("Undo").Picture

End If

End Sub

Private Sub ImgUndo_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 1 Then

'“抬起"按鈕

ImgUndo.Picture = ImageUp.ListImages("Undo").Picture

End If

End Sub

Private Sub New_Click()

FileName = ""

Text1 = ""

ImgUndoDisable

End Sub

Private Sub Open_Click()

Dim FileNum As Integer

Dim buffer As String

Dim buffer1 As String

Dim FileSize As Long

Dim MaxLen As Long

MaxLen = 32768 '檔案最大長度

CommonDialog1.ShowOpen '顯示"打開檔案"對話框

If Len(CommonDialog1.FileName) > 0 Then

'有輸入檔案名稱

FileName = CommonDialog1.FileName '保存檔案名稱

FileSize = FileLen(FileName) '獲得檔案長度

If FileSize > MaxLen Then

'檔案超長

MsgBox "該檔案過大,只能顯示部分文本", , "警告"

Exit Sub

End If

Screen.MousePointer = 11 '設定滑鼠為沙漏

FileNum = FreeFile() '獲得可用檔案號

Open FileName For Input As FileNum '以順序輸入方式打開檔案

Do While Not EOF(FileNum) And Len(buffer) < MaxLen '讀必須文本小於 32K

Line Input #FileNum, buffer1 '讀一行文字

buffer = buffer + buffer1 + Chr(13) + Chr(10) '加入回車換行符

Loop '循環體

Close FileNum '關閉檔案

ImgUndoDisable '取消 Undo 功能

Text1.Text = buffer '顯示文本

UndoNew = buffer '保存文本

buffer = "" '釋放記憶體

buffer1 = ""

Screen.MousePointer = 0 '恢復滑鼠指針

Me.Caption = "記事本 - " + FileName '修改標題顯示

End If

End Sub

Private Sub Paste_Click()

Text1.SelText = Clipboard.GetText

End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Label1 = "工具列"

End Sub

Private Sub Picture1_Resize()

If Picture1.Width > Label1.Left Then

Label1.Width = Picture1.ScaleWidth - Label1.Left

End If

End Sub

Private Sub Save_Click()

Dim FileNum As Integer '檔案句柄號

CommonDialog1.ShowSave '顯示保存對話框

If Len(CommonDialog1.FileName) > 0 Then

'有輸入檔案名稱

FileName = CommonDialog1.FileName '保存檔案名稱

FileNum = FreeFile() '獲得可用檔案號

Open FileName For Output As FileNum '打開輸出檔案

'如果無指定檔案,則創建新檔案

Print #FileNum, Text1.Text '輸出文本

Close FileNum '關閉檔案

Me.Caption = "記事本 - " + FileName '修改標題顯示

ImgUndoDisable

End If

End Sub

Private Sub Text1_Change()

If Not ImgUndo.Enabled Then

'使“Undo"按鈕可用

ImgUndoEnable

End If

UndoString = UndoNew

UndoNew = Text1

End Sub

Private Sub Text1_Click()

Check_ImgCutCopy

End Sub

Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)

Check_ImgCutCopy

End sub