Notepad.NET - 在 Visual Basic 中创建记事本克隆
用 Visual Basic 创建 Notepad 的克隆。
- 下载 Notepad.NET 可执行文件 - 47.52 KB
- 下载 Notepad.NET 源代码文件 - 121.25 KB
- Notepad.NET_source_V2.zip - 120.44 KB
- Notepad.NET_V2_Executables.zip - 49.05 KB
引言
这是一个简单且功能齐全的标准 Windows 记事本克隆。本文介绍了记事本中使用的功能,并讲述了编写代码的逻辑。还提供了代码。
背景
记事本基本有文件、编辑、格式、查看和帮助菜单。
我重新创建了文件、编辑、格式和帮助菜单。我排除了查看菜单,因为我认为简单的记事本应用程序不需要任何状态栏。如果您认为需要状态栏,我也提供了代码。
使用代码
文件菜单
新建 - 如果文档已修改,则会显示一个带有“是”和“否”按钮的消息框,询问是否应保存。代码是
If doc.Modified = True Then
Dim x As Integer = MsgBox("Do you want to save the modified document ?", MsgBoxStyle.YesNo)
If x = vbYes Then
SaveToolStripMenuItem.PerformClick()
Else
Me.Text = "Untitled - Notepad.NET"
doc.Clear()
End If
Me.Text = "Untitled - Notepad.NET"
doc.Clear()
End If
打开 - 文件已打开,Notepad.NET 使用 Rijndael 加密 - HEX 是编码类型。我从这个名为“Crypto.vb”的网站上获取了一个加密类。我已实现它来解密 TextBox doc 中的数据。
保存 - 文件使用相同的加密算法保存。
并且
还使用了 PageSetupDialog。
编辑菜单具有标准的剪切、复制、粘贴、撤销等功能。
在处理查找、查找下一个和替换部分时,曾有过很大的困惑和困难。但我最终成功解决了。
查找和替换的逻辑与代码
首先,我创建了一个名为 FindText 的函数,该函数依赖于 start_pos(声明为 Integer)。这是起始位置。然后我声明了两个私有变量 - target_pos(用于确定目标位置的整数)和 target(声明为 string)。
然后我声明了 pos 作为整数
Pos 被赋值给 InStr 函数,该函数确定文本的位置。
所以,如果 pos 大于 0,则找到文本。所以要选择文本,target_pos 被赋值给 ps。
选择对我来说是一个相当大的挑战。
文本框的 SelectionStart 属性决定了起始位置。所以它是 target_pos 减 1。选择一直到末尾。所以 SelectionLength 属性被设置为
Len(target)-(Len(target)-Len(target))
如果找不到,则清除 target 变量并显示消息“未找到文本”。
这不是很简单吗???
我编写的代码是
代码如下:
Private Sub FindText(ByVal start_pos as integer) Dim pos As Integer pos = InStr(start_pos, doc.Text.ToLower, tf.Text.ToLower) If pos > 0 Then target_pos = pos doc.SelectionStart = target_pos - 1 doc.SelectionLength = Len(target) - (Len(target) - Len(target)) Else MsgBox("Text Not Found") target = "" End If End Sub target = InputBox("Enter Word to find") FindText(1) If doc.SelectedText <> target Then Else x = InputBox(String.Format("Selected text is : {0}. Enter text to replace", target)) doc.SelectedText = x End If
以上是替换的代码。
自动换行是文本框的默认属性。
FindNext 的代码也很简单
只需将 target_pos 加 1。
所以代码将是
FindText(target_pos + 1)
可以通过声明新的 FontDialog 来更改字体,将选定的字体赋给文本框字体,并将文本框的字形设置为对话框的选定样式。
就是这样。
很简单,不是吗?
如果您认为可以添加新功能,请发表评论,我将收到通知并尽快回复。
<script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> var pageTracker = _gat._getTracker("UA-2980480-6"); pageTracker._initData(); pageTracker._trackPageview(); </script>