?

設計一種帶工具欄和留言功能的記事本

2014-07-28 05:05王彩霞
電腦知識與技術 2014年18期
關鍵詞:記事本工具欄

摘要:普通記事本是用戶常用的軟件之一,它的功能非常強大。但用它讀文件時,如果要把讀后感當成獨立的文件記錄下來,需要新建記事本文件,不方便以后查找。如果記事本能提供留言功能,可將讀后感存放到留言板,方便以后讀取。該記事本也不提供工具欄和文字顏色的設置,而工具欄是應用程序中必不可少的,它以形象的圖標為用戶提供了方便、快捷的操作。為此,該文設計一種帶有工具欄和留言功能的記事本,它不僅能夠進行文字編輯,字體顏色設置,自動換行,還能對文件進行新建、打開、保存、退出等操作,為用戶使用記事本提供了方便。

關鍵詞:記事本;工具欄;留言板

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)18-4166-04

Design A Toolbar and Message Functions Notepad

WANG Cai-xia

(College of Electronic Information Engineering, Anhui Business College, Wuhu 241000,China)

Abstract: Ordinary notepad is one of the common software, It is very powerful. But when it is used to read files, If the thoughts as a separate file record, the need for new notepad file, it is not convenient search the file in the future. If the notepad can provide message function, the thoughts store to the message board, to facilitate future reading. This notepad does not provide a toolbar and a text color settings, the toolbar is essential in the application, it provides a convenient, fast operation to the image of the icon for the user. for that reason, This paper design a toolbar and message functions notepad, It can not only make text editing, font color settings, wrap, but also new, open, save, exit and other operations on files, to provide convenience for the users to use notepad.

Key words: notepad;toolbar;message board

目前,類似記事本的文檔編輯器多種多樣,有GridinSoft Notepad,Notepad++,EmEditor,UEStudio,UniRed,xint,win32pad,SkimEdit[1]。其功能也各有千秋,應有盡有。有的可以改變字體,改變文字顏色。這些軟件因為功能太復雜,初學者難以掌握,而且用它們制作的文件比文本編輯器制作的文件要大很多,不方便存儲。相對于初學者來說,一個文本編輯器只需一些簡單實用的功能即可。該文依據這樣的思想,設計一種帶工具欄和留言功能的記事本,它不僅能實現文字的基本編輯功能,如復制、粘貼、剪切、自動換行、顏色、字體等,也能進行文件的新建、打開、保存、退出等功能,還提供工具欄和留言功能,為用戶提供方便。

1 功能描述

經過調查、分析,該文設計實現以下功能。

1)可以實現文件的新建、打開、保存、退出功能。

2)工具欄提供文件的新建、打開、保存、退出、復制、剪貼、粘貼、清除、全選等功能。

3)實現字體和顏色、自動換行的設置。

4)能實現留言和讀取留言功能。

2 界面設計和屬性設置

1)打開VS 2008開發工具,新建一個Windows應用程序,命名為WinNotepad,其屬性設置為:Text:多功能記事本 ;StartPosition:CenterScreen ;選擇路徑存盤。

2)在窗體上拖放1個MenuStrip[2],添加5個菜單項,將其Text屬性分別改為:文件、編輯、格式、留言板、幫助。在文件菜單項下依此添加4個子菜單項,將其Text屬性分別改為:新建、打開、保存、退出,Name屬性分別為:MI_New,MI_Open,MI_Save,MI_Exit。編輯菜單:剪切、復制、粘貼、全選、刪除,Name屬性分別為:MI_Cut,MI_Copy,MI_Paste, MI_SelectAll,MI_Delete。格式菜單:自動換行、字體、顏色,Name屬性分別為:MI_Wrop, MI_Font,MI_Color。留言板菜單:寫留言、讀留言,Name屬性分別為:MI_Write,MI_Read。幫助菜單:關于記事本。

3)在窗體上拖放1個ToolStrip[3],命名為toolStrip1,Text:工具欄。在工具欄上依次添加14個toolStripButton,分別命名為:ts_New、ts_Open、ts_Save、ts_Exit、ts_Cut、ts_Copy、ts_Paste、ts_SelectAll、ts_Delete、ts_Font、ts_Color、ts_Wrop、ts_WriteNote、ts_ReadNote,Text屬性分別為:新建、打開保存、退出、剪切、復制、粘貼、全選、刪除、字體、顏色、自動換行、寫留言、讀留言。并將每個菜單設置相對應的快捷鍵,在ShortcutKeys屬性中分別設置為:Ctrl+N、Ctrl+O、Ctrl+S、Ctrl+W、Ctrl+X、Ctrl+C、Ctrl+V、Ctrl+A、Delte、Ctrl+D、Ctrl+E(寫留言、讀留言不設置快捷鍵)、并插入相應的圖標,如圖1所示(設置好屬性后)。endprint

圖 1 多功能記事本界面

4)在窗體最下方拖放1個statusStrip,命名為statusStrip1,Text:狀態欄。在狀態欄添加toolStripStatusLabel,命名為:tss_lbl1,Text: 歡迎使用多功能記事本。

5)在窗體主工作區拖放1個richTextBox控件,命名為:rtxt_Notepad,讓它在父容器中???。給它加上快捷菜單:拖放1個contextMenuStrip,命名為:cMS_Cut,Text:快捷菜單,在快捷菜單中添加項:剪切、復制、粘貼、全選、清除,并添加這5項的圖標和快捷鍵。選定rtxt_notepad,在其contextMenuStrip屬性中選擇cMS_Cut,讓快捷菜單和控件相關聯[4]。

3 代碼編寫

在各菜單下依此雙擊,產生該菜單的Click()事件,我們由易到難寫代碼。

1)編輯菜單

編輯菜單包括:剪切、復制、粘貼、全選和清除,這幾項代碼非常簡單,只需調用控件rtxt_Notepad的相關事件即可。剪切、復制、粘貼、全選和清除分別調用rtxt_Notepad控件自帶的Cut()方法,Copy()方法;Paste()方法,rtxt_Notepad.Cut()方法;SelectAll()方法和Clear()方法。

2)格式菜單

格式菜單包括:字體、顏色、自動換行。先從控件中找到“字體對話框”和“顏色對話框”拖放到工作區,將fontDialog1的Name屬性改為:fd_Font,將colorDialog1的Name屬性改為:cd_Color代碼如下:

private void MS_Font_Click(object sender, EventArgs e)

{//字體

fd_Font.ShowApply = true;

fd_Font.ShowColor = true;

fd_Font.Font = rtxt_Notepad.Font;

fd_Font.Color = rtxt_Notepad.ForeColor;

if (fd_Font.ShowDialog() == DialogResult.OK)

{rtxt_Notepad.Font = fd_Font.Font;

rtxt_Notepad.ForeColor = fd_Font.Color;

}}

private void MS_Color_Click(object sender, EventArgs e)

{//顏色

cd_Color.AllowFullOpen = true;

if (cd_Color.ShowDialog() == DialogResult.OK)

{ rtxt_Notepad.ForeColor = cd_Color.Color; }

}

private void MS_Worp_Click(object sender, EventArgs e)

{//自動換行

if (rtxt_Notepad.WordWrap)

{ rtxt_Notepad.WordWrap = false; }

else

{ rtxt_Notepad.WordWrap = true; }

}

3)留言板菜單

在項目WinNotepad上添加2個Windows窗體,分別命名為:frmWriteNote、frmReadNote,

圖2 寫留言界面 圖3 讀留言界面

兩個窗體上均有一個richTextBox1控件,和2個Button控件,frmWriteNote窗體中Button1命名為:btnWriteNote、Text:寫留言,richTextBox1的Name屬性改為:rtxt_Write. rmReadNote窗體中Button1命名為:btnReadNote、Text:讀留言,richTextBox1的Name屬性改為:rtxt_Read.如圖2、圖3所示,代碼如下。

private void MI_Write_Click(object sender, EventArgs e)

{frmWriteNote frm = new frmWriteNote();

frm.Show();

}

private void MI_Read_Click(object sender, EventArgs e)

{frmReadNote frm = new frmReadNote();

frm.Show();

}

在窗體frmWriteNote中添加命名空間:using System.IO;在btnWriteNote按鈕下雙擊,產生Click事件:

private void btnWriteNote_Click(object sender, EventArgs e)

{//寫留言

StreamWriter sw = new StreamWriter(@"d:\temp.txt",true );

sw.WriteLine(rtxt_Write .Text );

sw.Flush();

sw.Close();

MessageBox.Show("留言成功","提示");

}

在窗體frmReadNote中添加命名空間:using System.IO;在btnReadNote按鈕下雙擊,產生Click事件:

private void btnReadNote_Click(object sender, EventArgs e)

{//讀留言

StreamReader sr = new StreamReader(@"d:\temp.txt");

rtxt_Read .Text=sr.ReadLine() + "\n";

while (!sr.EndOfStream )

{rtxt_Read.Text+=sr.ReadLine() + "\n";

}sr.Close ();

}

4)文件菜單

文件菜單下包括新建、打開、保存、退出,先對保存寫代碼,因為在新建和退出時,我們要判斷文檔是否為空,如果不為空就提示保存,否則新建或退出。先找到“保存對話框”和“打開對話框”控件,將其拖放到工作區,Name屬性分別為:sf_dialog,op_dialog,將兩個控件的Filter屬性都改為:“文本文檔(*.txt)|(*.txt)|所有文檔(*.*)|(*.*)”,這是過濾保存文件和打開文件的類型。主要代碼如下:

private void MI_Save_Click(object sender, EventArgs e)

{//保存

if (sf_dialog.ShowDialog() == DialogResult.OK)

{rtxt_Notepad.SaveFile(sf_dialog.FileName,RichTextBoxStreamType.PlainText);

}}

private void MI_New_Click(object sender, EventArgs e)

{//新建

if (rtxt_Notepad.Text != "")

{if (MessageBox.Show("內容不為空,需要保存嗎", "警告", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)

{ //保存(略) 同保存代碼 }

else

{ rtxt_Notepad.Text = ""; }

}}

private void MI_Exit_Click(object sender, EventArgs e)

{//退出

if (rtxt_Notepad.Text != "")

{if (MessageBox.Show("內容不為空,需要保存嗎", "警告", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)

{ //保存(略) 同保存代碼

Application.Exit();

}}

else

{ Application.Exit(); }

}

private void MI_Open_Click(object sender, EventArgs e)

{//打開

if (op_dialog.ShowDialog() == DialogResult.OK)

{StreamReader sr = new StreamReader(op_dialog.FileName, Encoding.Default);

rtxt_Notepad.Text = sr.ReadLine() + "\n";

if (!sr.EndOfStream)

{rtxt_Notepad.Text += sr.ReadLine() + "\n";

}sr.Close();

this.Text = op_dialog.FileName;

}}

5)工具欄按鈕和菜單項關聯

新建等菜單的代碼在上面已經完成,新建按鈕和新建菜單功能相同,代碼也相同,如果不想在新建按鈕下重復新建菜單的代碼,就必須讓它們相關聯。下面以工具欄中新建按鈕為例,說明工具欄各按鈕和對應的菜單項如何相關聯。選定新建按鈕ts_New,右擊選擇屬性,在屬性表的事件面板,找到Click事件,在下拉框選中“MI_New_Click”事件,其他的工具按鈕同樣的操作,選定對應的菜單事件即可。

4 運行結果

完成代碼后,按F5調試,多功能記事本各功能都能正常操作,將寫留言和讀留言窗體運行結果顯示如圖4、圖5所示。

圖4 寫留言運行結果 圖5 讀留言運行結果

5 總結

本文通過記事本功能的描述,設計了工具欄和留言功能,工具欄為操作記事本的用戶提供了方便,留言功能為用戶提供了交

(下轉第4192頁)

(上接第4169頁)

互的場所,在設計過程中,需要注意工具欄和菜單項的關聯,以及控件和快捷菜單之間的關聯。最后用C#語言進行實現,運行結果顯示,各功能均能正常操作。由于篇幅關系,該文沒有設計狀態欄的具體實現,有狀態欄的具體實現會更好!

參考文獻:

[1] 韋建忠.Visual Basic Tex tBox 控件實現記事本功能的程序設計[J].廣西師范學院學報:自然科學版,2007,9(24):94-96.

[2] 解二虎,李俊玲.用VFP程序設計帶工具欄的記事本[J].集寧師專學.2008,4(30):62-64.

[3] 歐陽甜子.用C#實現Windows 記事本功能的程序設計[J].軟件導刊,2008(2):56-58.

[4] 谷震離.胡付田,楊喜娟.記事本應用程序的開發與設計[J]許昌學院學報,2003,3(22):102-105.

猜你喜歡
記事本工具欄
有關記事本之危險的提示(節選)
做個樹懶記事本
“玩轉”西沃白板
小狗記事本
記事本里的信息技術課
定制主界面 高效用Word
DIY個性備課夾
輕松DIY:用好IE8瀏覽器中的自定義功能等
以最快的速度為填空題留空
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合