相信大家学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.ClearEnd 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 IfEnd 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 IfEnd Sub'窗体调整大小Private Sub Form_Resize() RTBox.Width = Form1.Width - 40 '修改文本框的大小 RTBox.Height = Form1.Height - 40End Sub'复制Private Sub MenuStripCopy_Click() Clipboard.Clear '清楚剪切板 Clipboard.SetText RTBox.SelTextEnd 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 IfEnd 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.FontUnderlineEnd 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 IfEnd 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 IfEnd 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 IfEnd 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 IfEnd Sub
Kivi加油!!
--------------------------------------------------------------------------------------
- 版权声明:
- 如在本页面内无特别说明,本文内容均为[李大仁博客]原创,本文版权归[李大仁博客]所有。
- 欢迎转载,转载请务必在文章页面明显位置提供原文链接并注明出处。欢迎您在转载本文时保留本段声明。
- 文章标题:
[VB]VB6实现仿Windows的记事本notepad的程序源代码
- 独立博客:
李大仁博客
- 永久链接:http://www.lidaren.com/archives/335
--------------------------------------------------------------------------------------
以上内容由博客自动发布工具自动发布,最终显示内容和效果会与原文内容有所偏差,敬请谅解。
转载请注明原文地址: https://ju.6miu.com/read-1307608.html