版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、洛陽理工學(xué)院實(shí)驗(yàn)報(bào)告系別計(jì)算機(jī)與信息工程系班級學(xué)號姓名課程名稱C#面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn)日期實(shí)驗(yàn)名稱綜合實(shí)驗(yàn),記事本成績實(shí)驗(yàn)?zāi)康模赫莆帐褂妹嫦驅(qū)ο蠹夹g(shù)進(jìn)行程序設(shè)計(jì)的基本思想,熟悉Windows應(yīng)用程序開發(fā)的基本方法和步驟。實(shí)驗(yàn)條件:裝有VS2010的微機(jī)一臺。實(shí)驗(yàn)內(nèi)容:內(nèi)容:設(shè)計(jì)一個(gè)windows應(yīng)用程序,要求1)至少設(shè)計(jì)二個(gè)類,并復(fù)蓋面向?qū)ο蟮睦^承、多態(tài)等基本特性;2)需使用到Editbox、Combobox等常用Windows控件;3)至少設(shè)計(jì)一個(gè)接口及接口支持類;4)最好使用到GDI+技術(shù)或者數(shù)據(jù)庫編程技術(shù)。建議題目:(1)圖書管理系統(tǒng):能夠?qū)崿F(xiàn)添加新書、修改和刪除圖書信息,借出操作等;支
2、持按書號精確查詢圖書信息、按書名模糊查詢圖書信息等。(2)記事本:能夠?qū)崿F(xiàn)文件新建、保存、打開等操作;支持字體樣式設(shè)置;支持文字查找和替換等編輯功能。(3)繪圖板:能夠?qū)崿F(xiàn)直線、多邊形、圓等幾何圖形繪制操作;支持圖形文件保存;支持幾何圖形的選取、復(fù)制和移動等操作。一、程序主要用到的控件有:1、RichTextBox控件的主要屬性屬性SelectedText、SelectionLength、SelectionStart:屬性SelectionFont:屬性SelectionColor:屬性Lines:屬性Modified:事件SelectionChange:事件TextChanged:2、Ric
3、hTextBox控件的主要方法方法Clear():方法Copy()、Cut()、Paste():方法SelectAll():方法Find():方法SaveFile()和LoadFile():方法Undo():方法Redo():二、功能設(shè)計(jì)與實(shí)現(xiàn)1、剪貼板功能放RichTextBox控件到窗體。屬性Name=richTextBoxl,Dock=Fill,Text=。privatevoidmenuItemEditCut_Click(objectsender,EventArgse)richTextBox1.Cut();剪切privatevoidmenuItemEditCopy_Click(objec
4、tsender,EventArgse)richTextBox1.Copy();拷貝privatevoidmenuItemEditPaste_Click(objectsender,EventArgse)richTextBox1.Paste();粘貼privatevoidmenuItemEditUndo_Click(objectsender,EventArgse)richTextBox1.Undo();撤銷privatevoidmenuItemEditRedo_Click(objectsender,EventArgse)richTextBox1.Redo();恢復(fù)2、存取文件功能文本編輯器都應(yīng)具有
5、文件存取功能,菜單頂級菜單項(xiàng)“文件”的彈出菜單中一般包括如下菜單項(xiàng):新建、打開、關(guān)閉、保存和另存為等。需要用到打開文件對話框(OpenFileDialog控件)和保存文件對話框(SaveFileDialog控件)。和兩個(gè)對話框的常用屬性和方法:屬性Filter:例如Filter=“純文本文件(*.txt)l*.txt所有文件(*.*)|*.*”屬性FilterIndex:屬性FileName:屬性InitialDirectory:屬性DefaultExt:方法ShowDialog():三、程序主窗體預(yù)覽:四、源程序:1、主窗體代碼:usingSystem;usingSystem.Collect
6、ions.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.IO;namespace記事本publicpartialclassMainForm:Form#region初始化全局變量/vsummary摘要/定義全局變量/v/summaryboolnewnote=true;/是否新建文檔boolopenfile=true;/是否為打開的打開文件,true表示為打開
7、的文件,否則表示新編輯的文件boolsavefile=true;/是否保存文件boolIsSaved=false;標(biāo)示符表示文本已經(jīng)被保存過,true表示已保存,false表示未保存stringFilename=null;/用于保存當(dāng)前文本的文件名boolIsnewnote=false;/是否為新建文檔boolIsclose=false;/是否關(guān)閉程序標(biāo)示符introw=1;顯示光標(biāo)所在行號intcol=1;顯示光標(biāo)所在列號#endregion#region初始化主窗體publicMainForm()InitializeComponent();初始化窗體openfile=false;菜單欄選項(xiàng)
8、撤銷.Enabled=false;剪切.Enabled=false;復(fù)制.Enabled=false;粘貼.Enabled=true;刪除.Enabled=false;全選.Enabled=false;查找ToolStripMenuItem.Enabled=false;鼠標(biāo)點(diǎn)擊菜單選項(xiàng)撤銷l.Enabled=false;剪切1.Enabled=false;復(fù)制1.Enabled=false;粘貼1.Enabled=true;刪除1.Enabled=false;全選1.Enabled=false;字體1.Enabled=false;顏色1.Enabled=false;#endregion#reg
9、ion窗體載入時(shí)privatevoidForm1_Load(objectsender,EventArgse)this.狀態(tài)欄ToolStripMenuItem.Checked=true;this.toolStripStatusLabell.Text=正在執(zhí)行:文本讀寫操作;this.toolStripStatusLabel2.Text=當(dāng)前文檔計(jì)數(shù):+richTextBoxl.Text.Length;this.toolStripStatusLabel3.Text=|;this.toolStripStatusLabel4.Text=光標(biāo)所在:+第+row+行第+col+列timer1.Start
10、();#endregion#region菜單欄-文件-新建/vsummary摘要/設(shè)置新建選項(xiàng),如果已有文本在文本框中,則需要先提示用戶進(jìn)行保存/v/summary/vparamname=senderx/param/vparamname=ev/paramprivatevoid新建_Click(objectsender,EventArgse)tryif(newnote)如果文本未保存,或者被修改,則在新建前應(yīng)該提醒用戶保存if(richTextBoxl.Modified)DialogResultdialg=MessageBox.Show(”文件已被修改是否要保存?,保存文件,MessageBox
11、Buttons.YesNoCancel,MessageBoxIcon.Question);switch(dialg)caseDialogResult.Yes:另存為_Click(sender,e);richTextBoxl.Clear();IsSaved=false;Isnewnote=true;表示此時(shí)文本為新建文本this.Text=新建-記事本;break;caseDialogResult.No:richTextBox1.Clear();IsSaved=false;Isnewnote=true;表示此時(shí)文本為新建文本this.Text=新建-記事本;break;catch(System.
12、Exceptionex)MessageBox.Show(ex.Message);#endregion#region菜單欄-文件-打開/vsummary摘要/想要實(shí)現(xiàn)打開文件功能,要注意的一點(diǎn)就是,在打開文件的時(shí)候一定要指定解碼方式/不然會出現(xiàn)中文亂碼現(xiàn)象/v/summaryC#默認(rèn)解碼方式為unicode方式,而中文為gb2312,因此必須指定其中文的解碼方式/vparamname=senderx/param/vparamname=ev/paramprivatevoid打開_Click(objectsender,EventArgse)try如果文本框?yàn)榭栈蛘邲]有修改則執(zhí)行以下代碼if(rich
13、TextBox1.Modified=false)openFileDialogl.Title=打開;openFileDialogl.Filter=文本文件(*.txt)l*.txtlC#程序文件(*.cs)l*.cslWord文檔(*.doc)l*.docl所有文件(*.*)|*.*;指定所能打開的文件格式openFileDialogl.FileName=無標(biāo)題;openFileDialogl.AddExtension=true;/如果用戶省略擴(kuò)展名,將自動添加擴(kuò)展名if(openFileDialog1.ShowDialog()=DialogResult.OK)StreamReadersr=ne
14、wStreamReader(openFileDialog1.FileName,System.Text.Encoding.Default);richTextBox1.Text=sr.ReadToEnd();從流的當(dāng)前位置到流的結(jié)束位置this.Text=openFileDialog1.SafeFileName+-記事本;sr.Close();Filename=openFileDialog1.FileName;richTextBox1.Modified=false;/將文本框標(biāo)示符重置openfile=true;重置標(biāo)識符IsSaved=true;elseif(richTextBox1.Modif
15、ied)DialogResultr=MessageBox.Show(”是否將更改保存到無標(biāo)題?,”無標(biāo)題”,MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question);intg=(int)r;當(dāng)g為6時(shí)表示選擇的是“是”為7是選擇的是“否”if(g=6)if(openfile=false)保存Click(sender,e);elseif(openfile)saveFileDialogl.FileName=Filename;richTextBoxl.SaveFile(saveFileDialogl.FileName,RichTextBoxStre
16、amType.PlainText);/if(saveFileDialog1.ShowDialog()=DialogResult.OK)openFileDialog1.Title=打開;openFileDialog1.Filter=文本文件(*.txt)l*.txtlC#程序文件(*.cs)l*.cslWord文檔(*.doc)|*.doc|所有文件(*.*)|*.*;指定所能打開的文件格式openFileDialog1.FileName=無標(biāo)題;openFileDialog1.AddExtension=true;/如果用戶省略擴(kuò)展名,則自動添加擴(kuò)展名if(openFileDialog1.Sho
17、wDialog()=DialogResult.OK)StreamReadersr=newStreamReader(Filename,Encoding.Default);richTextBoxl.Text=sr.ReadToEnd();從流的當(dāng)前位置到流的結(jié)束位置this.Text=openFileDialogl.SafeFileNames+記事本;標(biāo)題欄中顯示打開的文件信息,包括文件名及其擴(kuò)展名sr.Close();Filename=openFileDialog1.FileName;/elseif(g=7)表示選擇的是“否”openFileDialog1.Title=打開;openFileDi
18、alog1.Filter=文本文件(*.txt)l*.txtlC#程序文件(*.cs)l*.cslWord文檔(*.doc)|*.doc|所有文件(*.*)|*.*;指定所能打開的文件格式openFileDialog1.FileName=無標(biāo)題;openFileDialog1.AddExtension=true;if(openFileDialog1.ShowDialog()=DialogResult.OK)StreamReadersr=newStreamReader(openFileDialog1.FileName,Encoding.Default);這里一定要指定解碼的方式為,不然會出現(xiàn)中文
19、亂碼情況richTextBox1.Text=sr.ReadToEnd();從流的當(dāng)前位置到流的結(jié)束位置this.Text=openFileDialogl.SafeFileName+無標(biāo)題;sr.Close();Filename=openFileDialogl.FileName;elsereturn;catch(System.Exceptionp)MessageBox.Show(p.Message);#endregion#region菜單欄-文件-保存/vsummary摘要III實(shí)現(xiàn)文件保存功能,在進(jìn)行保存的時(shí)候一定要指定中文編碼為ANSI格式/否則系統(tǒng)默認(rèn)為Unicode格式,RichText
20、BoxStreamType.PlainText可以保證保存的文本為指定類型/v/summary/vparamname=senderx/param/vparamname=ev/paramprivatevoid保存_Click(objectsender,EventArgse)try如果要保存文件不是新建文件,則執(zhí)行保存功能if(savefile&Isnewnote=false)if(IsSaved!=true)saveFileDialogl.FileName=*.txt;saveFileDialogl.Title=保存;saveFileDialog1.Filter=文本文件(*.txt)l*.tx
21、tI所有文件(*.*)|*.*;saveFileDialog1.RestoreDirectory=true;elsesaveFileDialog1.FileName=Filename;if(!IsSaved&saveFileDialog1.ShowDialog()=DialogResult.OK)StreamWritersw=newStreamWriter(saveFileDialog1.FileName,false,Encoding.Default);sw.WriteLine(richTextBoxl.Text);sw.Flush();清除緩存sw.Close();保存后關(guān)閉對話框Filen
22、ame=saveFileDialogl.FileName;保存當(dāng)前文件保存路徑IsSaved=true;表示文件已被保存this.Save.Enabled=false;Isclose=false;如果對已保存過文件修改后保存,則執(zhí)行以下代碼,保存并覆蓋原來文elseif(IsSaved=true)/RichTextBoxStreamType.PlainText可以將保存的文件指定類型richTextBox1.SaveFile(saveFileDialog1.FileName,RichTextBoxStreamType.PlainText);IsSaved=true;表示文件已被保存Isclos
23、e=false;this.Save.Enabled=false;elseIsclose=true;如果當(dāng)前文本為新建文本,則執(zhí)行另存為功能elseif(IsSaved=false&Isnewnote=true)另存為_Click(sender,e);catch(System.Exceptionex)MessageBox.Show(ex.Message);finallyrichTextBoxl.Modified=false;/將文本框的標(biāo)示符改為false,表示未被修改#endregion#region菜單欄-文件-另存為/vsummary摘要/如果想將文本保存到其他路徑,則可以執(zhí)行以下代碼/v
24、paramname=ex/paramprivatevoid另存為_Click(objectsender,EventArgse)trysaveFileDialogl.Title=另存為;saveFileDialogl.FileName=*.txt;saveFileDialog1.Filter=文本文件(*.txt)l*.txt所有文件(*.*)|*.*;saveFileDialog1.RestoreDirectory=true;if(saveFileDialog1.ShowDialog()=DialogResult.OK)sw=newStreamWriterStreamWriter(saveFi
25、leDialog1.FileName,false,Encoding.Default);sw.Write(richTextBox1.Text);sw.Close();保存后關(guān)閉對話框IsSaved=true;/表示文檔已被保存elseIsclose=true;catch(System.Exceptionex)MessageBox.Show(ex.Message);#endregion#region菜單欄-文件-退出/vsummary摘要/退出功能,要注意的是,當(dāng)用戶要退出程序時(shí),如果還有文本沒有保存/則應(yīng)當(dāng)提醒用戶保存/v/summary/vparamname=senderx/param/vpa
26、ramname=ev/paramprivatevoid退出_Click(objectsender,EventArgse)if(richTextBoxl.Modified=false)this.Close();elseif(richTextBox1.Modified)DialogResultdialg=MessageBox.Show(是否將改動保存?,”提醒,MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question);switch(dialg)privatevoid復(fù)制_Click(objectsender,EventArgse)richText
27、Boxl.Copy();#endregion#region菜單欄-編輯-粘貼privatevoid粘貝占_Click(objectsender,EventArgse)richTextBox1.Paste();#endregion#region菜單欄-編輯-刪除privatevoid刪除_Click(objectsender,EventArgse)richTextBox1.SelectedText=;#endregion#region菜單欄-編輯-全選privatevoid全選_Click(objectsender,EventArgse)richTextBox1.SelectAll();#end
28、region#region菜單欄-編輯-查找privatevoid查找ToolStripMenuItem_Click(objectsender,EventArgse)Searchfrmsearch=newSearchfrm();search.Show(this);#endregion#region菜單欄-編輯-替換privatevoid替換ToolStripMenuItem_Click(objectsender,EventArgse)Replacefrmreplace=newReplacefrm();replace.rtb=this.richTextBoxl;傳值,從主窗體傳到替換窗體repl
29、ace.Show(this);#endregion#region當(dāng)文本框內(nèi)容改變時(shí)實(shí)時(shí)監(jiān)測文本框內(nèi)容改變,當(dāng)文本框的內(nèi)容被修改時(shí)執(zhí)行以下代碼privatevoidrichTextBox1_TextChanged(objectsender,EventArgse)richTextBox1.Modified=true;/modified為true時(shí)表示文本已被修改Save.Enabled=true;this.toolStripStatusLabel2.Text=當(dāng)前文檔計(jì)數(shù):+richTextBox1.Text.Length;撤銷.Enabled=true;if(richTextBoxl.Text!
30、=)全選.Enabled=true;菜單欄標(biāo)識符重置全選1.Enabled=true;鼠標(biāo)點(diǎn)擊菜單標(biāo)識符重置else全選.Enabled=false;全選1.Enabled=false;查找ToolStripMenuItem.Enabled=true;#endregion#region菜單欄-格式-自動換行privatevoid自動換行ToolStripMenuItem_Click(objectsender,EventArgse)if(this.自動換行ToolStripMenuItem.Checked=false)this.自動換行ToolStripMenuItem.Checked=true
31、;this.richTextBox1.WordWrap=true;elsethis.自動換行ToolStripMenuItem.Checked=false;this.richTextBoxl.WordWrap=false;#endregion#region菜單欄-格式-字體privatevoid字體ToolStripMenuItem_Click(objectsender,EventArgse)if(richTextBox1.SelectedText=”)MessageBox.ShowC請先選擇想要改變字體的文本!);return;this.fontDialog1.ShowEffects=tru
32、e;this.fontDialog1.Font=this.richTextBox1.SelectionFont;if(this.fontDialog1.ShowDialog()=DialogResult.OK)this.richTextBox1.SelectionFont=this.fontDialog1.Font;#endregion#region菜單欄-格式-顏色privatevoid顏色ToolStripMenuItem_Click(objectsender,EventArgse)this.colorDialogl.AnyColor=true;this.colorDialogl.Colo
33、r=this.richTextBoxl.SelectionColor;if(this.colorDialog1.ShowDialog()=DialogResult.OK)this.richTextBox1.SelectionColor=this.colorDialog1.Color;#endregion#region菜單欄-格式-背景顏色privatevoid背景顏色ToolStripMenuItem_Click(objectsender,EventArgse)if(this.colorDialog1.ShowDialog()=DialogResult.OK)this.richTextBox1
34、.BackColor=this.colorDialog1.Color;#endregion#region菜單欄-查看privatevoid狀態(tài)欄ToolStripMenuItem_Click(objectsender,EventArgse)if(this.狀態(tài)欄ToolStripMenuItem.Checked=false)this.狀態(tài)欄ToolStripMenuItem.Checked=true;this.statusStripl.Visible=true;this.richTextBoxl.Height-=22;elsethis.狀態(tài)欄ToolStripMenuItem.Checked=false;this.statusStrip1.Visible=false;this.richTextBox1.Height+=22;#endregion#region當(dāng)選定文本發(fā)生改變時(shí)private
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個(gè)人債務(wù)轉(zhuǎn)讓及債務(wù)清理執(zhí)行細(xì)則協(xié)議4篇
- 二零二五年度安全生產(chǎn)標(biāo)準(zhǔn)化建設(shè)承包合同范本3篇
- 二零二五年度吊車操作培訓(xùn)與安全規(guī)范制定合同3篇
- 二零二五年度建筑材料質(zhì)量糾紛處理合同范本6篇
- 二零二五年度城市公共廁所智能化改造合同范本2篇
- 臨時(shí)活動用場地租賃合同書2024版樣本版B版
- 二零二五年度商業(yè)地產(chǎn)租賃轉(zhuǎn)供電管理合同3篇
- 2025年度教育機(jī)構(gòu)學(xué)生信息保密與隱私保護(hù)合同范本4篇
- 泰州二手房買賣合同2025版
- 二零二五年度高空作業(yè)樓頂廣告牌拆除與安全培訓(xùn)協(xié)議4篇
- 《醫(yī)院財(cái)務(wù)分析報(bào)告》課件
- 2025老年公寓合同管理制度
- 2024-2025學(xué)年人教版數(shù)學(xué)六年級上冊 期末綜合卷(含答案)
- 2024中國汽車后市場年度發(fā)展報(bào)告
- 感染性腹瀉的護(hù)理查房
- 天津市部分區(qū)2023-2024學(xué)年高二上學(xué)期期末考試 物理 含解析
- 《人工智能基礎(chǔ)》全套英語教學(xué)課件(共7章)
- GB/T 35613-2024綠色產(chǎn)品評價(jià)紙和紙制品
- 物品賠償單范本
- 《水和廢水監(jiān)測》課件
- 滬教版六年級數(shù)學(xué)下冊課件【全冊】
評論
0/150
提交評論