banner
李大仁博客

李大仁博客

天地虽大,但有一念向善,心存良知,虽凡夫俗子,皆可为圣贤。

VB仿Windows的記事本notepad的程式源代碼

相信大家學 VB 如果連記事本這東西都不知道話就很鬱悶了,CG 今天接到 Kivi 的任務,做一個能看懂代碼的記事本程式作為 VB 作業上交,據說還要上台講,這老師真夠難為人的,反正 CG 是有段時間沒有見到了,源代碼附上,如果大家有需要的話拿走,畢竟像初學者還是需要的。

簡要說明: 記事本程式主要是要求在 VB 中使用 Common Dialog Control 控件的打開文件,打開字體,保存文件對話框的功能,實現文本的創建、修改、編輯、保存的功能,也是大家平時也使用的比較多的文本編輯器。

源代碼地址: http://www.lidaren.com/code/VBnotepad.zip

以下是部分參考代碼:

Dim Changed As Boolean ' 是否被修改
Dim IsSave As Boolean ' 是否已經保存
Dim FileName As String ' 文件名稱
Dim TxtBefore As String ' 修改前文本,用於撤銷操作

' 窗體加載
Private Sub Form_Load()
Clipboard.Clear
End Sub

' 窗體關閉
Private Sub Form_Unload(Cancel As Integer)
' 與退出按鈕的事件處理方法相同
If Changed = True Then
result = MsgBox ("您正要關閉編輯窗口,是否保存您的修改?", vbYesNoCancel, "確定") ' 提示是否保存
If result = vbYes Then
MenuStripSave_Click ' 直接調用保存事件的方法
ElseIf result = vbNo Then
Unload Me ' 卸載窗體
End If
Else
Unload Me
End If
End Sub

' 關於
Private Sub MenuStripAbout_Click()
MsgBox "Powered By CG", vbOKOnly, "關於"
End Sub
' 選擇全部文本
Private Sub MenuStripSelectAll_Click()
RTBox.SelStart = 0 ' 從文本開始處開始
RTBox.SelLength = Len (RTBox.Text) ' 選擇長度 = 文本最大長度
End Sub
' 撤銷
Private Sub MenuStripUndo_Click()
RTBox.Text = TxtBefore ' 恢復文本
End Sub
' 文本框文本變化
Private Sub RTBox_Change()
Changed = True ' 發生 Change 事件
If FileName = "" Then ' 如果文件名是空 未命名
FileName = "未命名"
Me.Caption = FileName ' 修改標題
End If
If InStr(Me.Caption, "*") = 0 Then
Me.Caption = FileName + "*" ' 標記星號
End If
End Sub
' 窗體調整大小
Private Sub Form_Resize()
RTBox.Width = Form1.Width - 40 ' 修改文本框的大小
RTBox.Height = Form1.Height - 40
End Sub
' 複製
Private Sub MenuStripCopy_Click()
Clipboard.Clear ' 清楚剪切板
Clipboard.SetText RTBox.SelText
End Sub
' 剪切
Private Sub MenuStripCut_Click()
Clipboard.Clear
Clipboard.SetText RTBox.SelText
RTBox.SelText = "" ' 複製後刪除所選文本
End Sub
' 刪除
Private Sub MenuStripDelete_Click()
RTBox.SelText = "" ' 直接刪除文本
End Sub
' 退出
Private Sub MenuStripExit_Click()
If Changed = True Then
result = MsgBox ("您正要關閉編輯窗口,是否保存您的修改?", vbYesNoCancel, "確定") ' 確認
If result = vbYes Then
MenuStripSave_Click ' 調用保存事件的代碼
ElseIf result = vbNo Then
Unload Me
End If
Else
Unload Me ' 如果沒有修改那就直接卸載窗體
End If
End Sub
' 字體對話框
Private Sub MenuStripFont_Click()
ComDiag.Flags = 1
ComDiag.ShowFont ' 顯示字體對話框
RTBox.Font.Bold = ComDiag.FontBold ' 字體屬性賦值
RTBox.Font.Italic = ComDiag.FontItalic
RTBox.Font.Name = ComDiag.FontName
RTBox.Font.Size = ComDiag.FontSize
RTBox.Font.Strikethrough = ComDiag.FontStrikethru
RTBox.Font.Underline = ComDiag.FontUnderline
End Sub
' 新建
Private Sub MenuStripNew_Click()
Dim result As Integer ' 定義一個 int 用於獲取對話框結果
If Changed = True Then
result = MsgBox ("您正要新建一個編輯窗口,是否保存您的修改?", vbYesNoCancel, "確定")
If result = vbYes Then
MenuStripSave_Click
End If
Else
FileName = "未命名"
Me.Caption = FileName
RTBox.Text = "" ' 清空文本框
End If
End Sub
' 打開
Private Sub MenuStripOpen_Click()
ComDiag.Filter = "*.*"
ComDiag.ShowOpen
If ComDiag.FileName <> "" Then ' 如果選擇了文件
FileName = ComDiag.FileName
RTBox.Text = ""
RTBox.LoadFile FileName
Me.Caption = FileName ' 修改標題
End If
End Sub

' 粘貼
Private Sub MenuStripPaste_Click()
RTBox.SelText = Clipboard.GetText ' 粘貼剪貼板的內容
End Sub

' 保存
Private Sub MenuStripSave_Click()
Dim result As Integer
If IsSave = True Then
RTBox.SaveFile FileName, rtfText ' 如果已經保存過,直接保存結果
If InStr (Me.Caption, "*") <> 0 Then ' 標題中有 * ?
Me.Caption = Replace (Me.Caption, "*", "") ' 替換
End If
Else
ComDiag.Filter = "*.*"
ComDiag.DialogTitle = "保存" + FileName
ComDiag.ShowSave ' 保存對話框
If FileName <> "" Then
FileName = ComDiag.FileName
RTBox.SaveFile FileName, rtfText ' 保存結果 TEXT 格式
IsSave = True ' 已經保存
Me.Caption = FileName
If InStr(Me.Caption, "*") <> 0 Then
Me.Caption = Replace (Me.Caption, "*", "") ' 清除星號
End If
End If
End If

End Sub
' 另存為
Private Sub MenuStripSaveAs_Click()
ComDiag.Filter = "*.*"
ComDiag.DialogTitle = "另存為..."
ComDiag.ShowSave
If FileName <> "" Then
FileName = ComDiag.FileName
RTBox.SaveFile FileName, rtfText
IsSave = True
Me.Caption = FileName
If InStr(Me.Caption, "*") <> 0 Then
Me.Caption = Replace(Me.Caption, "*", "")
End If
End If
End Sub

Kivi 加油!!

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。