生活随笔
收集整理的這篇文章主要介紹了
VB.NET完成一个功能增强的记事本
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
VB.NET完成一個功能增強的記事本
分類: DotNet 2011-07-02 16:05 153人閱讀 收藏 舉報
想必大家都聽說過Notepad2,Notepad++一類的記事本增強軟件,想自己也寫一個嗎?
今天教大家用用VB.NET寫了一個功能增強的記事本(支持全文字數統計、選中部分字數統計、支持doc、rtf格式等)
先上圖:
感覺如果不錯的話,看看源碼吧:
view plaincopy to clipboardprint?
Public?Class?MainForm??????Dim?FileName?As?String?=?"無標題"??????Dim?word?As?String?=?""??????Dim?ML?As?Boolean?=?False????????Private?Sub?Form1_Load(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?MyBase.Load??????????Me.StartPosition?=?FormStartPosition.CenterScreen??????????Me.Text?=?FileName?+?"?-?"?+?"記事本——AngelHacker"??????????RichTextBox1.WordWrap?=?False??????????RichTextBox1.ContextMenuStrip?=?ContextMenuStrip1??????????RichTextBox1.ScrollBars?=?RichTextBoxScrollBars.Both??????????新建NToolStripMenuItem.ShortcutKeys?=?Keys.Control?+?Keys.N??????????打開OToolStripMenuItem.ShortcutKeys?=?Keys.Control?+?Keys.O??????????保存SToolStripMenuItem.ShortcutKeys?=?Keys.Control?+?Keys.S??????????剪切TToolStripMenuItem.ShortcutKeys?=?Keys.Control?+?Keys.X??????????復制CToolStripMenuItem.ShortcutKeys?=?Keys.Control?+?Keys.C??????????粘貼PToolStripMenuItem.ShortcutKeys?=?Keys.Control?+?Keys.V??????????全選AToolStripMenuItem.ShortcutKeys?=?Keys.Control?+?Keys.A??????????刪除LToolStripMenuItem.ShortcutKeys?=?Keys.Delete??????????查找FToolStripMenuItem.ShortcutKeys?=?Keys.Control?+?Keys.F??????????查找下一個NToolStripMenuItem.ShortcutKeys?=?Keys.F3??????????查找下一個NToolStripMenuItem.Enabled?=?False??????End?Sub????????Private?Sub?新建NToolStripMenuItem_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?新建NToolStripMenuItem.Click??????????RichTextBox1.Text?=?""??????????FileName?=?"無標題"??????????Me.Text?=?FileName?+?"?-?"?+?"記事本——AngelHacker"??????End?Sub????????Private?Sub?打開OToolStripMenuItem_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?打開OToolStripMenuItem.Click??????????OpenFileDialog1.Filter?=?"文本文檔(*.txt)|*.txt|RTF文檔(*.rtf)|*.rtf|所有文件(*.*)|*.*"??????????OpenFileDialog1.FileName?=?""??????????If?OpenFileDialog1.ShowDialog()?=?Windows.Forms.DialogResult.Cancel?Then??????????????Exit?Sub??????????Else??????????????RichTextBox1.Text?=?""??????????????FileName?=?OpenFileDialog1.FileName??????????????Select?Case?OpenFileDialog1.FilterIndex??????????????????Case?"1"??????????????????????RichTextBox1.LoadFile(FileName,?RichTextBoxStreamType.PlainText)??????????????????Case?"2"??????????????????????RichTextBox1.LoadFile(FileName,?RichTextBoxStreamType.RichText)??????????????????Case?Else??????????????????????On?Error?GoTo?txt??????????????????????RichTextBox1.LoadFile(FileName)??????????????End?Select??????????????Me.Text?=?FileName?+?"?-?"?+?"記事本——AngelHacker"??????????End?If??????????Exit?Sub??txt:??????????RichTextBox1.LoadFile(FileName,?RichTextBoxStreamType.PlainText)??????End?Sub????????Private?Sub?保存SToolStripMenuItem_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?保存SToolStripMenuItem.Click??????????If?Me.Text?=?"無標題?-?記事本——AngelHacker"?Then??????????????SaveFileDialog1.Filter?=?"文本文檔(*.txt)|*.txt|RTF文檔(*.rtf)|*.rtf|所有文件(*.*)|*.*"??????????????SaveFileDialog1.FileName?=?""??????????????SaveFileDialog1.CheckPathExists?=?True??????????????If?SaveFileDialog1.ShowDialog()?=?Windows.Forms.DialogResult.Cancel?Then??????????????????Exit?Sub??????????????Else??????????????????Select?Case?SaveFileDialog1.FilterIndex??????????????????????Case?"1"??????????????????????????RichTextBox1.SaveFile(SaveFileDialog1.FileName,?RichTextBoxStreamType.PlainText)??????????????????????Case?"2"??????????????????????????RichTextBox1.SaveFile(SaveFileDialog1.FileName,?RichTextBoxStreamType.RichText)??????????????????????Case?Else??????????????????????????RichTextBox1.SaveFile(SaveFileDialog1.FileName)??????????????????End?Select??????????????????Me.Text?=?SaveFileDialog1.FileName?+?"?-?"?+?"記事本——AngelHacker"??????????????End?If??????????Else??????????????Select?Case?Mid(Me.Text,?Me.Text.Length?-?21,?3)??????????????????Case?"txt"??????????????????????RichTextBox1.SaveFile(Mid(Me.Text,?1,?Me.Text.Length?-?18),?RichTextBoxStreamType.PlainText)??????????????????Case?"rtf"??????????????????????RichTextBox1.SaveFile(Mid(Me.Text,?1,?Me.Text.Length?-?18),?RichTextBoxStreamType.RichText)??????????????????Case?Else??????????????????????RichTextBox1.SaveFile(Mid(Me.Text,?1,?Me.Text.Length?-?18))??????????????End?Select??????????End?If??????End?Sub????????Private?Sub?另存為AToolStripMenuItem_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?另存為AToolStripMenuItem.Click??????????SaveFileDialog1.Filter?=?"文本文檔(*.txt)|*.txt|RTF文檔(*.rtf)|*.rtf|所有文件(*.*)|*.*"??????????SaveFileDialog1.FileName?=?""??????????SaveFileDialog1.CheckPathExists?=?True??????????If?SaveFileDialog1.ShowDialog()?=?Windows.Forms.DialogResult.Cancel?Then??????????????Exit?Sub??????????Else??????????????Select?Case?SaveFileDialog1.FilterIndex??????????????????Case?"1"??????????????????????RichTextBox1.SaveFile(SaveFileDialog1.FileName,?RichTextBoxStreamType.PlainText)??????????????????Case?"2"??????????????????????RichTextBox1.SaveFile(SaveFileDialog1.FileName,?RichTextBoxStreamType.RichText)??????????????????Case?Else??????????????????????RichTextBox1.SaveFile(SaveFileDialog1.FileName)??????????????End?Select??????????????Me.Text?=?SaveFileDialog1.FileName?+?"?-?"?+?"記事本——AngelHacker"??????????End?If??????End?Sub????????Private?Sub?退出XToolStripMenuItem_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?退出XToolStripMenuItem.Click??????????End??????End?Sub????????Private?Sub?重置UToolStripMenuItem_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?重置UToolStripMenuItem.Click,?重置UToolStripMenuItem1.Click??????????RichTextBox1.Text?=?""??????????RichTextBox1.SelectionStart?=?1??????????word?=?""??????????查找下一個NToolStripMenuItem.Enabled?=?False??????????RichTextBox1.Font?=?Font??????End?Sub????????Private?Sub?剪切TToolStripMenuItem_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?剪切TToolStripMenuItem.Click,?剪切TToolStripMenuItem1.Click??????????RichTextBox1.Cut()??????End?Sub????????Private?Sub?復制CToolStripMenuItem_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?復制CToolStripMenuItem.Click,?復制CToolStripMenuItem1.Click??????????RichTextBox1.Copy()??????End?Sub????????Private?Sub?粘貼PToolStripMenuItem_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?粘貼PToolStripMenuItem.Click,?粘貼PToolStripMenuItem1.Click??????????RichTextBox1.Paste()??????End?Sub????????Private?Sub?全選AToolStripMenuItem_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?全選AToolStripMenuItem.Click,?全選AToolStripMenuItem1.Click??????????RichTextBox1.SelectAll()??????End?Sub????????Private?Sub?刪除LToolStripMenuItem_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?刪除LToolStripMenuItem.Click,?刪除DToolStripMenuItem.Click??????????RichTextBox1.Text?=?RichTextBox1.Text.Remove(RichTextBox1.SelectionStart,?RichTextBox1.SelectionLength)??????End?Sub????????Private?Sub?字數統計ToolStripMenuItem_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?字數統計ToolStripMenuItem.Click,?字數統計SToolStripMenuItem.Click??????????If?RichTextBox1.SelectedText?=?""?Then??????????????MsgBox("全文共"?+?RichTextBox1.TextLength.ToString?+?"字符")??????????Else??????????????MsgBox("選中的字符數為"?+?RichTextBox1.SelectionLength.ToString)??????????End?If??????End?Sub????????Private?Sub?自動換行WToolStripMenuItem_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?自動換行WToolStripMenuItem.Click??????????If?ML?=?False?Then??????????????RichTextBox1.WordWrap?=?True??????????????自動換行WToolStripMenuItem.Checked?=?True??????????????ML?=?True??????????Else??????????????RichTextBox1.WordWrap?=?False??????????????自動換行WToolStripMenuItem.Checked?=?False??????????????ML?=?False??????????End?If??????End?Sub????????Private?Sub?關于AToolStripMenuItem_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?關于AToolStripMenuItem.Click??????????AboutBox1.ShowDialog()??????End?Sub????????Private?Sub?字體FToolStripMenuItem_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?字體FToolStripMenuItem.Click??????????If?FontDialog1.ShowDialog()?=?Windows.Forms.DialogResult.Cancel?Then??????????????Exit?Sub??????????Else??????????????RichTextBox1.Font?=?FontDialog1.Font??????????End?If??????End?Sub????????Private?Sub?查找FToolStripMenuItem_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?查找FToolStripMenuItem.Click??????????word?=?InputBox("查找內容",?"查找")??????????If?word?=?""?Then??????????????Exit?Sub??????????Else??????????????Dim?a?As?Integer?=?RichTextBox1.Find(word,?RichTextBox1.SelectionStart,?RichTextBoxFinds.MatchCase)??????????????If?a?=?-1?Then??????????????????MsgBox("找不到"?+?""""?+?word?+?"""")??????????????Else??????????????????查找下一個NToolStripMenuItem.Enabled?=?True??????????????????Exit?Sub??????????????End?If??????????End?If??????End?Sub????????Private?Sub?查找下一個NToolStripMenuItem_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?查找下一個NToolStripMenuItem.Click??????????Dim?wz?As?Integer??????????If?RichTextBox1.SelectionStart?=?RichTextBox1.TextLength?Then??????????????MsgBox("找不到"?+?""""?+?word?+?"""")??????????Else??????????????wz?=?RichTextBox1.SelectionStart??????????????wz?+=?1??????????????Dim?a?As?Integer?=?RichTextBox1.Find(word,?wz,?RichTextBoxFinds.MatchCase)??????????????If?a?=?-1?Then??????????????????MsgBox("找不到"?+?""""?+?word?+?"""")??????????????Else??????????????????Exit?Sub??????????????End?If??????????End?If??????End?Sub????????Private?Sub?時間日期DToolStripMenuItem_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?時間日期DToolStripMenuItem.Click??????????If?ML?=?False?Then??????????????RichTextBox1.Text?+=?Date.Now??????????Else??????????????RichTextBox1.Text?+=?Chr(13)?&?Chr(10)?&?Date.Now??????????End?If??????End?Sub????End?Class?? Public Class MainFormDim FileName As String = "無標題"Dim word As String = ""Dim ML As Boolean = FalsePrivate Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LoadMe.StartPosition = FormStartPosition.CenterScreenMe.Text = FileName + " - " + "記事本——AngelHacker"RichTextBox1.WordWrap = FalseRichTextBox1.ContextMenuStrip = ContextMenuStrip1RichTextBox1.ScrollBars = RichTextBoxScrollBars.Both新建NToolStripMenuItem.ShortcutKeys = Keys.Control + Keys.N打開OToolStripMenuItem.ShortcutKeys = Keys.Control + Keys.O保存SToolStripMenuItem.ShortcutKeys = Keys.Control + Keys.S剪切TToolStripMenuItem.ShortcutKeys = Keys.Control + Keys.X復制CToolStripMenuItem.ShortcutKeys = Keys.Control + Keys.C粘貼PToolStripMenuItem.ShortcutKeys = Keys.Control + Keys.V全選AToolStripMenuItem.ShortcutKeys = Keys.Control + Keys.A刪除LToolStripMenuItem.ShortcutKeys = Keys.Delete查找FToolStripMenuItem.ShortcutKeys = Keys.Control + Keys.F查找下一個NToolStripMenuItem.ShortcutKeys = Keys.F3查找下一個NToolStripMenuItem.Enabled = FalseEnd SubPrivate Sub 新建NToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 新建NToolStripMenuItem.ClickRichTextBox1.Text = ""FileName = "無標題"Me.Text = FileName + " - " + "記事本——AngelHacker"End SubPrivate Sub 打開OToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 打開OToolStripMenuItem.ClickOpenFileDialog1.Filter = "文本文檔(*.txt)|*.txt|RTF文檔(*.rtf)|*.rtf|所有文件(*.*)|*.*"OpenFileDialog1.FileName = ""If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.Cancel ThenExit SubElseRichTextBox1.Text = ""FileName = OpenFileDialog1.FileNameSelect Case OpenFileDialog1.FilterIndexCase "1"RichTextBox1.LoadFile(FileName, RichTextBoxStreamType.PlainText)Case "2"RichTextBox1.LoadFile(FileName, RichTextBoxStreamType.RichText)Case ElseOn Error GoTo txtRichTextBox1.LoadFile(FileName)End SelectMe.Text = FileName + " - " + "記事本——AngelHacker"End IfExit Sub
txt:RichTextBox1.LoadFile(FileName, RichTextBoxStreamType.PlainText)End SubPrivate Sub 保存SToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 保存SToolStripMenuItem.ClickIf Me.Text = "無標題 - 記事本——AngelHacker" ThenSaveFileDialog1.Filter = "文本文檔(*.txt)|*.txt|RTF文檔(*.rtf)|*.rtf|所有文件(*.*)|*.*"SaveFileDialog1.FileName = ""SaveFileDialog1.CheckPathExists = TrueIf SaveFileDialog1.ShowDialog() = Windows.Forms.DialogResult.Cancel ThenExit SubElseSelect Case SaveFileDialog1.FilterIndexCase "1"RichTextBox1.SaveFile(SaveFileDialog1.FileName, RichTextBoxStreamType.PlainText)Case "2"RichTextBox1.SaveFile(SaveFileDialog1.FileName, RichTextBoxStreamType.RichText)Case ElseRichTextBox1.SaveFile(SaveFileDialog1.FileName)End SelectMe.Text = SaveFileDialog1.FileName + " - " + "記事本——AngelHacker"End IfElseSelect Case Mid(Me.Text, Me.Text.Length - 21, 3)Case "txt"RichTextBox1.SaveFile(Mid(Me.Text, 1, Me.Text.Length - 18), RichTextBoxStreamType.PlainText)Case "rtf"RichTextBox1.SaveFile(Mid(Me.Text, 1, Me.Text.Length - 18), RichTextBoxStreamType.RichText)Case ElseRichTextBox1.SaveFile(Mid(Me.Text, 1, Me.Text.Length - 18))End SelectEnd IfEnd SubPrivate Sub 另存為AToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 另存為AToolStripMenuItem.ClickSaveFileDialog1.Filter = "文本文檔(*.txt)|*.txt|RTF文檔(*.rtf)|*.rtf|所有文件(*.*)|*.*"SaveFileDialog1.FileName = ""SaveFileDialog1.CheckPathExists = TrueIf SaveFileDialog1.ShowDialog() = Windows.Forms.DialogResult.Cancel ThenExit SubElseSelect Case SaveFileDialog1.FilterIndexCase "1"RichTextBox1.SaveFile(SaveFileDialog1.FileName, RichTextBoxStreamType.PlainText)Case "2"RichTextBox1.SaveFile(SaveFileDialog1.FileName, RichTextBoxStreamType.RichText)Case ElseRichTextBox1.SaveFile(SaveFileDialog1.FileName)End SelectMe.Text = SaveFileDialog1.FileName + " - " + "記事本——AngelHacker"End IfEnd SubPrivate Sub 退出XToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 退出XToolStripMenuItem.ClickEndEnd SubPrivate Sub 重置UToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 重置UToolStripMenuItem.Click, 重置UToolStripMenuItem1.ClickRichTextBox1.Text = ""RichTextBox1.SelectionStart = 1word = ""查找下一個NToolStripMenuItem.Enabled = FalseRichTextBox1.Font = FontEnd SubPrivate Sub 剪切TToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 剪切TToolStripMenuItem.Click, 剪切TToolStripMenuItem1.ClickRichTextBox1.Cut()End SubPrivate Sub 復制CToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 復制CToolStripMenuItem.Click, 復制CToolStripMenuItem1.ClickRichTextBox1.Copy()End SubPrivate Sub 粘貼PToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 粘貼PToolStripMenuItem.Click, 粘貼PToolStripMenuItem1.ClickRichTextBox1.Paste()End SubPrivate Sub 全選AToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 全選AToolStripMenuItem.Click, 全選AToolStripMenuItem1.ClickRichTextBox1.SelectAll()End SubPrivate Sub 刪除LToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 刪除LToolStripMenuItem.Click, 刪除DToolStripMenuItem.ClickRichTextBox1.Text = RichTextBox1.Text.Remove(RichTextBox1.SelectionStart, RichTextBox1.SelectionLength)End SubPrivate Sub 字數統計ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 字數統計ToolStripMenuItem.Click, 字數統計SToolStripMenuItem.ClickIf RichTextBox1.SelectedText = "" ThenMsgBox("全文共" + RichTextBox1.TextLength.ToString + "字符")ElseMsgBox("選中的字符數為" + RichTextBox1.SelectionLength.ToString)End IfEnd SubPrivate Sub 自動換行WToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 自動換行WToolStripMenuItem.ClickIf ML = False ThenRichTextBox1.WordWrap = True自動換行WToolStripMenuItem.Checked = TrueML = TrueElseRichTextBox1.WordWrap = False自動換行WToolStripMenuItem.Checked = FalseML = FalseEnd IfEnd SubPrivate Sub 關于AToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 關于AToolStripMenuItem.ClickAboutBox1.ShowDialog()End SubPrivate Sub 字體FToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 字體FToolStripMenuItem.ClickIf FontDialog1.ShowDialog() = Windows.Forms.DialogResult.Cancel ThenExit SubElseRichTextBox1.Font = FontDialog1.FontEnd IfEnd SubPrivate Sub 查找FToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 查找FToolStripMenuItem.Clickword = InputBox("查找內容", "查找")If word = "" ThenExit SubElseDim a As Integer = RichTextBox1.Find(word, RichTextBox1.SelectionStart, RichTextBoxFinds.MatchCase)If a = -1 ThenMsgBox("找不到" + """" + word + """")Else查找下一個NToolStripMenuItem.Enabled = TrueExit SubEnd IfEnd IfEnd SubPrivate Sub 查找下一個NToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 查找下一個NToolStripMenuItem.ClickDim wz As IntegerIf RichTextBox1.SelectionStart = RichTextBox1.TextLength ThenMsgBox("找不到" + """" + word + """")Elsewz = RichTextBox1.SelectionStartwz += 1Dim a As Integer = RichTextBox1.Find(word, wz, RichTextBoxFinds.MatchCase)If a = -1 ThenMsgBox("找不到" + """" + word + """")ElseExit SubEnd IfEnd IfEnd SubPrivate Sub 時間日期DToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 時間日期DToolStripMenuItem.ClickIf ML = False ThenRichTextBox1.Text += Date.NowElseRichTextBox1.Text += Chr(13) & Chr(10) & Date.NowEnd IfEnd SubEnd Class
基本上沒用什么屬性設置,都是靠代碼實現的,由于功能十分簡單,使用的是面向過程的方法實現,看起來簡單點。
微軟的記事本其實很簡單,給大家開闊下思路。
需要完整源碼的可以到這里下載:http://download.csdn.net/source/3412684
http://wenku.baidu.com/view/8dadb7ea998fcc22bcd10d8a.html
歡迎轉載:http://blog.csdn.com/AngelHacker/
http://blog.csdn.net/angelhacker/article/details/6580425
http://wenku.baidu.com/view/8dadb7ea998fcc22bcd10d8a.html
總結
以上是生活随笔為你收集整理的VB.NET完成一个功能增强的记事本的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。