版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 . . . 目錄1 采用技術(shù)11.1. visual studio 2010編輯環(huán)境11.2.C#的窗體編程12 選題說明23 總體說明33.1程序的基本結(jié)構(gòu)33.2程序的主要技術(shù)34詳細說明44.1 界面設(shè)計45 遇到的問題和解決方法105.1 未考慮到生成文檔窗體在主窗體中的顯示105.2 不知到什么屬性被修改,導(dǎo)致主窗體關(guān)閉失效105.3 未考慮到文檔關(guān)閉時,文檔是否保存106 程序詳細設(shè)計代碼116.1 主窗體結(jié)構(gòu)和屬性值116.2 工具欄實現(xiàn)136.3 打開、保存文件的代碼實現(xiàn):146.4 退出時的代碼:156.5 編輯欄功能的實現(xiàn)(剪切、復(fù)制等)166.6 字體和顏色部分的實現(xiàn)1
2、76.7 在狀態(tài)欄實時顯示光標(biāo)的位置196.8 查找替換頁的實現(xiàn)206.9 打印功能實現(xiàn)23參考文獻2828 / 32摘要C#文本編輯器是一個關(guān)于文本編輯器的小程序,運用一些簡單的記事本的基本操作功能來實現(xiàn)的。該程序利用C#程序編寫,在Visual Studio 2010的環(huán)境下進行調(diào)試運行的,能夠?qū)ξ谋具M行簡單編輯處理,如:剪切、復(fù)制等。對于該程序開發(fā),必須達到以下要求:1、熟悉.NET開發(fā)環(huán)境,能夠使用C#語言在.NET平臺上獨立設(shè)計、開發(fā)WINDOWS應(yīng)用程序。 2、掌握C#語言的異常處理技術(shù),能夠使用.NET各種調(diào)試方法調(diào)試代碼,掌握幫助的使用方法。 3、掌握常用控件以與控件的常用屬性
3、的使用方法。4、界面要做到簡潔易懂,具有人性化等特點。5、程序沒有在使用過程中不存在任何的問題。 6、通過使用C#編寫程序,可以發(fā)現(xiàn)能完成任務(wù),能夠編寫出文本編輯器應(yīng)有的基礎(chǔ)功能。引言文本編輯器是常用的簡便工具。本設(shè)計完成的功能類似于Windows操作系統(tǒng)的記事本工具,又添加了多文檔接口支持,以與更豐富的字體樣式控制。利用C#完成文本編輯器的開發(fā),實現(xiàn)以下功能:文檔讀寫:打開文件(包括普通文本文件和富文本文件); 保存文件(包括另存為);文檔編輯(包括輸入、修改、復(fù)制、粘貼、重做、撤銷、查找、替換、設(shè)置字體樣式等);打印與打印頁面設(shè)置;配置功能,完成狀態(tài)欄的顯示設(shè)置和文件的定時自動保存設(shè)置;操
4、作系統(tǒng)和軟件開發(fā)包往往都提供文本編輯器,用以修改配置文件和程序的源代碼。市場上出現(xiàn)的和用戶所使用的文本編輯器種類繁多,功能也是各式各樣,其中有相當(dāng)一部分是很優(yōu)秀的。但是面向底層用戶的的操作簡單的,界面友好的,集文本操作、編輯操作、格式操作于一體的編輯器并不多見。目前市面上現(xiàn)有的如office中的word還有WPS等大眾文本編輯器雖然功能也十分齊全,但是本身往往就是數(shù)百兆甚至幾個G,占用資源非常大,而且對于電腦本身的性能要求也比較高,甚至有部分專業(yè)的文本編輯器需要付費使用。 本次畢業(yè)設(shè)計所研究的就是編寫一個功能完整,占用資源較少的,操作簡單適用于大眾的文本編輯器。該編輯器要求可以實現(xiàn)新建、保存、
5、打開等基本文件操作,還要求具有復(fù)制、粘貼、剪切、撤消等基本文本編輯操作以與字體選擇、顏色設(shè)置、格式設(shè)置等格式操作。同時,該文本編輯器號要求具備豐富的快捷方式和熱鍵,以方便用戶進行操作,降低操作難度,提高工作效率。同時,由于文本編輯器要求占用資源少,所以本身需要啟動的進程必須較少,以節(jié)約系統(tǒng)資源。而滿足上述條件的文本編輯器目前市面上尚未出現(xiàn),因此本次課程設(shè)計研究十分具備可行性。1 采用技術(shù)1.1. visual studio 2010編輯環(huán)境Visual Studio 是微軟公司推出的開發(fā)環(huán)境。是目前最流行的 Windows 平臺應(yīng)用程序開發(fā)環(huán)境。目前已經(jīng)開發(fā)到 10.0 版。 Visual S
6、tudio 可以用來創(chuàng)建 Windows 平臺下的 Windows 應(yīng)用程序和網(wǎng)絡(luò)應(yīng)用程序,也可以用來創(chuàng)建網(wǎng)絡(luò)服務(wù)、智能設(shè)備應(yīng)用程序和 Office 插件。Visual Studio 是一套完整的開發(fā)工具集,用于生成 ASP.NET Web 應(yīng)用程序、XML Web Services、桌面應(yīng)用程序和移動應(yīng)用程序。Visual Basic、Visual C+、Visual C# 和 Visual J# 全都使用一樣的集成開發(fā)環(huán)境 (IDE),利用此 IDE 可以共享工具且有助于創(chuàng)建混合語言解決方案。另外,這些語言利用了 .NET Framework 的功能,通過此框架可使用簡化 ASP Web
7、應(yīng)用程序和 XML Web Services 開發(fā)的關(guān)鍵技術(shù)。1.2.C#的窗體編程Windows 窗體是用于 Microsoft Windows 應(yīng)用程序開發(fā)的、基于 .NET Framework 的新平臺。此框架提供一個有條理的、面向?qū)ο蟮?、可擴展的類集,使您能夠開發(fā)功能豐富的 Windows 應(yīng)用程序。另外,Windows 窗體可作為多層分布式解決方案中的本地用戶界面。窗體是一種文檔,可以用來收集信息。它包括兩部分,一部分是由窗體設(shè)計者輸入的,填寫窗體的人無法更改的文字或圖形。窗體設(shè)計者可以插入希望得到回答的問題、選項列表、信息表格等。另一部分是由窗體填寫者輸入的,用于從填寫窗體者處收集
8、信息并進行整理的空白區(qū)域。窗體設(shè)計者可以在文檔中插入窗體域或 ActiveX 控件,為窗體填寫者提供用于收集數(shù)據(jù)的位置。2 選題說明隨著科技的發(fā)展,人們對精神生活要求的越來越高,紙質(zhì)的手動式的書寫方式已經(jīng)不是能夠代表新世紀(jì)的生活需要了,所以現(xiàn)在各種不同功能的文本編輯器已經(jīng)悄悄走進我們的生活和學(xué)習(xí)中,像簡單的就有記事本。 但是一個簡單的文本編輯器也是很重要的,是基礎(chǔ)。所以在結(jié)合自己的一個學(xué)期的很認真的學(xué)習(xí)c#后,決定自己編譯一個類似與記事本的,但功能比記事本強大的文本編輯器。3 總體說明3.1程序的基本結(jié)構(gòu)操作界面的主窗口為文本編輯器的主入口,類似于記事本的形式,菜單欄要如下的幾項(),另外還有
9、兩個簡單的toolstripe式的圖片按鈕,分別是新建和保存。當(dāng)點擊新建的時候,會彈出我們將要編輯的文檔文本窗口,這是我們編寫文字的地方。書寫完畢后,要先確認是否保存此文件夾,這樣就不會發(fā)生自己所編輯的容會丟失。3.2程序的主要技術(shù)(1) 編寫要先新建,編寫之后要有保存功能;(2) 還可以設(shè)置文字的字體字形和字體的顏色;(3) 實現(xiàn)文字替換與查找功能;(4) 可以進行打印、打印預(yù)覽;(5)狀態(tài)欄能夠?qū)崟r反映輸入狀態(tài);4 詳細說明4.1 界面設(shè)計打開Visual Studio 2010開發(fā)工具,新建一個Windows應(yīng)用程序,然后在窗體上依次放置1個MenuStrip菜單欄和1個ToolStri
10、p工具欄,如圖4-1所示(設(shè)置好屬性后)。圖4-1 編輯器用戶界面運行程序,新建文檔。如圖4-2所示。圖4-2新建文本文檔運行程序,設(shè)置字體的大小和粗細,以與字體的顏色。如圖4-3所示圖4-3 字體大小與顏色單擊保存按鈕,保存所編輯的文本。結(jié)果如圖4-4所示。圖4-4 保存文本單擊文件按鈕,能夠?qū)崿F(xiàn)如下的功能,結(jié)果如圖4-5所示。圖4-5 菜單文件的功能單擊編輯按鈕,功能如下,結(jié)果如圖4-6所示圖4-6 菜單編輯的功能狀態(tài)欄的功能,結(jié)果如圖4-7所示:圖4-7 狀態(tài)欄的功能為了確保退出前能夠保存文件,減少誤操作,在關(guān)閉窗口時加入了提示功能,結(jié)果如圖4-8所示:圖4-7 狀態(tài)欄的功能查找和替換功
11、能的實現(xiàn),結(jié)果如圖4-8所示:圖4-8 查找和替換功能5 遇到的問題和解決方法5.1 未考慮到生成文檔窗體在主窗體中的顯示解決辦法:在參照樣的時候例程序,發(fā)現(xiàn)文檔是顯示在主窗體部,結(jié)合自己的所學(xué),發(fā)現(xiàn)設(shè)置主窗體的屬性記事本()。 f.MdiParent = this; count+; f.Text = "新建文本" + count;設(shè)置成Mdiparent屬性即可。5.2 不知到什么屬性被修改,導(dǎo)致主窗體關(guān)閉失效 解決辦法:在菜單文件中設(shè)置關(guān)閉程序的命令,并申請了菜單合并,不需要在新建文檔的情況下就能關(guān)閉主窗體,現(xiàn)在仍然留下一個讓人深究的問題,究竟是什么樣的屬性才是控制最大
12、化,最小化,以與關(guān)閉的顯隱性,有待繼續(xù)學(xué)習(xí)。這是自己在程序完成的時候出現(xiàn)的意外,但是確是我在編寫過程中遇到的最大難題。5.3 未考慮到文檔關(guān)閉時,文檔是否保存解決辦法:這是細節(jié)問題,其實是很容易做到,當(dāng)關(guān)閉的時候顯示一個對話框提示一下即可。6 程序詳細設(shè)計代碼6.1 主窗體結(jié)構(gòu)和屬性值控件屬性屬性值說明FormNamefrmEditorText文本文件編輯器Font宋體,五號MenuStripNamemsEditor菜單條ToolStripMenuItemNamemnFile文件菜單Text文件ToolStripMenuItemNamemiFileNewText新建ToolStripMenuI
13、temNamemiFileOpenText打開ToolStripMenuItemNamemiFileSaveText保存ToolStripMenuItemNamemiFileSaveAsText另存為ToolStripMenuItemNamemiFileExitText退出ToolStripMenuItemNamemnEdit編輯菜單Text編輯ToolStripMenuItemNamemiEditCutText剪切ToolStripMenuItemNamemiEditCopyText復(fù)制ToolStripMenuItemNamemiEditPasteText粘貼ToolStripMenuIt
14、emNamemiEditUnDoText撤消ToolStripMenuItemNamemiEditReDoText恢復(fù)ToolStripMenuItemNamemiEditFindText查找ToolStripMenuItemNamemiEditReplaceText替換ToolStripMenuItemNamemnStyle格式菜單Text格式ToolStripMenuItemNamemiStyleFontText字體ToolStripMenuItemNamemiStyleColorText顏色ToolStripMenuItemNamemiStyleAlignLeftText左對齊ToolS
15、tripMenuItemNamemiStyleAlignCenterText中對齊ToolStripMenuItemNamemiStyleAlignRightText右對齊ToolStripMenuItemNamemiStyleIndentText縮進ToolStripMenuItemNamemnPrint打印菜單Text打印ToolStripNametsEditor工具條StatusStripNamessEditor狀態(tài)條RichTextBoxNamertbEditor富格式文本編輯器DockFillOpenFileDialogNamedlgOpen打開文件對話框PrintDocumentN
16、amedocPrint打印文檔控件6.2 工具欄實現(xiàn)制作圖標(biāo):每個按鈕做一個圖標(biāo)文件,大小為16*16,參見FileNew.bmp,FileOpen.bmp,FileSave.bmp,EditCut.bmp,EditCopy.bmp,EditPaste.bmp。制作按鈕:在工具欄添加按鈕并裝入每個按鈕的圖象,圖標(biāo)命名:tsbFileName,tsbFileOpen,tsbFileSave,sbEditCut,tsbEditCopy, tsbEditPaste控件屬性屬性值說明ToolStripButtonNametsbFileNew新建文件ImageFileNew.bmpimageTransp
17、arentColorOliveToolStripButtonNametsbFileOpen打開文件ImageFileOpen.bmpimageTransparentColorOliveToolStripButtonNametsbFileSave保存文件ImageFileSave.bmpimageTransparentColorOliveToolStripButtonNametsbEditCut剪切ImageEditCut.bmpimageTransparentColorOliveToolStripButtonNametsbEditCopy編輯ImageEditCopy.bmpimageTran
18、sparentColorOliveToolStripButtonNametsbEditPaste粘貼ImageEditPaste.bmpimageTransparentColorOlive設(shè)計完成后的效果如下圖:6.3 打開、保存文件的代碼實現(xiàn):打開:private void miFileOpen_Click_1(object sender, EventArgs e) dlgOpen.Filter = "文本文件(*.txt)|*.txt|富格式文件 (*.rtf)|*.rtf|所有文件(*.*)|*.*" if (dlgOpen.ShowDialog() = Dialog
19、Result.OK) _fileName = dlgOpen.FileName; if (Path.GetExtension(_fileName) = ".rtf") rtbEditor.LoadFile(_fileName, RichTextBoxStreamType.RichText); else rtbEditor.LoadFile(_fileName, RichTextBoxStreamType.PlainText); 保存(另存為):private void miFileSaveAs_Click(object sender, EventArgs e) / 動態(tài)創(chuàng)建
20、一個文件保存對話框 SaveFileDialog dlgSave = new SaveFileDialog(); / 設(shè)置保存對話框的默認參數(shù) dlgSave.InitialDirectory = "c:tmp" dlgSave.Filter = "文本文件(*.txt)|*.txt|富格式文件 (*rtf)|*.rtf|所有文件(*.*)|*.*" dlgSave.Title = "保存我的文件" / 顯示保存對話框 if (dlgSave.ShowDialog() = DialogResult.OK)/ 表示按下“確認”按鈕 _f
21、ileName = dlgSave.FileName; / 如果擴展名為rtf格式,則以RTF格式保存文件,否則 以普通文本格式保存文件 if (Path.GetExtension(_fileName) = ".rtf") rtbEditor.SaveFile(_fileName, RichTextBoxStreamType.RichText); else rtbEditor.SaveFile(_fileName, RichTextBoxStreamType.PlainText); 6.4 退出時的代碼: private void miFileExit_Click(obje
22、ct sender, EventArgs e) DialogResult result; result = MessageBox.Show("退出前是否保存", "退出", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); if (result = DialogResult.No) this.Close(); else if (result = DialogResult.Yes) SaveFileDialog dlgSave = new SaveFileDialog(); / 設(shè)置保存對話框
23、的默認參數(shù) dlgSave.InitialDirectory = "c:tmp" dlgSave.Filter = "文本文件(*.txt)|*.txt| (*rtf)|*.rtf|所有文件(*.*)|*.*" dlgSave.Title = "保存我的文件" / 顯示保存對話框 if (dlgSave.ShowDialog() = DialogResult.OK) / 表示按下“確認”按鈕 _fileName = dlgSave.FileName; / 得到用戶指 定的文件名 / 如果擴展名為rtf格式,則以RTF格式保存文件, 否
24、則以普通文本格式保存文件 if (Path.GetExtension(_fileName) = ".rtf") rtbEditor.SaveFile(_fileName, RichTextBoxStreamType.RichText); else rtbEditor.SaveFile(_fileName, RichTextBoxStreamType.PlainText); 6.5 編輯欄功能的實現(xiàn)(剪切、復(fù)制等)private void miEditCut_Click(object sender, EventArgs e) rtbEditor.Cut(); private
25、void miEditCopy_Click(object sender, EventArgs e) rtbEditor.Copy(); private void miEditPaste_Click(object sender, EventArgs e) rtbEditor.Paste(); private void miEditReDo_Click(object sender, EventArgs e) rtbEditor.Redo(); private void miEditUnDo_Click(object sender, EventArgs e) rtbEditor.Undo(); 6.
26、6 字體和顏色部分的實現(xiàn)private void miStyleFont_Click(object sender, EventArgs e) / 創(chuàng)建字體對話框 FontDialog dlgFont = new FontDialog(); dlgFont.ShowColor = true; dlgFont.ShowApply = true; / 設(shè)置字體對框的默認字體, / 如果已經(jīng)有選擇文本,則設(shè)置為選擇文本的字體和顏色 / 否則設(shè)置為全文的字體和姿色 if (rtbEditor.SelectionLength > 0) dlgFont.Font = rtbEditor.Selecti
27、onFont; dlgFont.Color = rtbEditor.SelectionColor; else dlgFont.Font = rtbEditor.Font; dlgFont.Color = rtbEditor.ForeColor; / 顯示字體對話框,且用戶按下了“確認”按鈕 if (dlgFont.ShowDialog() = DialogResult.OK) / 如果有選擇文件,剛修改選擇文本的字體和顏色 if (rtbEditor.SelectionLength > 0) rtbEditor.SelectionFont = dlgFont.Font; rtbEdito
28、r.SelectionColor = dlgFont.Color; / 否則修改整個文本的字體和顏色 else rtbEditor.Font = dlgFont.Font; rtbEditor.ForeColor = dlgFont.Color; private void miStyleColor_Click(object sender, EventArgs e) ColorDialog dlgColor = new ColorDialog(); if (dlgColor.ShowDialog() = DialogResult.OK) if (rtbEditor.SelectionLength
29、 > 0) rtbEditor.SelectionColor = dlgColor.Color; else rtbEditor.ForeColor = dlgColor.Color; 6.7 在狀態(tài)欄實時顯示光標(biāo)的位置響應(yīng)文本編輯器rtbEditor的MouseDown消息,得到光標(biāo)的位置,進而得到光標(biāo)的行號和列號。響應(yīng)文本編輯器rtbEditor的KeyUp消息,得到光標(biāo)的位置,進而得到光標(biāo)的行號和列號。 private void rtbEditor_MouseDown(object sender, MouseEventArgs e) / 根據(jù)光標(biāo)所在象素位置,得到字符索引號 int
30、nCharIndex = rtbEditor.GetCharIndexFromPosition(new Point(e.X, e.Y); / 根據(jù)字符索引號,得到所在行號和列號 int nRowNo = rtbEditor.GetLineFromCharIndex(nCharIndex); int nFirstCharIndex = rtbEditor.GetFirstCharIndexFromLine(nRowNo);int nColNo = nCharIndex - nFirstCharIndex; / 在狀態(tài)欄上顯示行號和列號 tsslRowNo.Text = string.Format
31、("行:0", nRowNo + 1); tsslColNo.Text = string.Format("列:0", nColNo); private void rtbEditor_KeyUp(object sender, KeyEventArgs e) / 根據(jù)光標(biāo)所在位置,得到字符索引號 int nCharIndex = rtbEditor.SelectionStart;/ 根據(jù)字符索引號,得到所在行號和列號 int nRowNo = rtbEditor.GetLineFromCharIndex(nCharIndex);int nFirstCharI
32、ndex = rtbEditor.GetFirstCharIndexFromLine(nRowNo);int nColNo = nCharIndex - nFirstCharIndex; / 在狀態(tài)欄上顯示行號和列號 tsslRowNo.Text = string.Format("行:0", nRowNo + 1); tsslColNo.Text = string.Format("列:0", nColNo);6.8 查找替換頁的實現(xiàn)添加一個新的窗體文件控件屬性屬性值說明FormNamefrmFindAndReplace查找與替換Text查找和替換Font
33、宋體,五號TopMostTrue總顯示在最上面TabControlNametabControl1卡片控制TabPageNametabFind卡片頁:查找Text查找TabPageNametabReplace卡片頁:替換Text替換TextBoxNametxtFindFind查找頁:查找文本CheckBoxNamecbFindWholeWord查找頁:全字匹配Text全字匹配CheckBoxNamecbFindMatchCase查找頁:區(qū)分大小寫Text區(qū)分大小寫B(tài)uttonNamebtnFindFindNext查找頁:查找下一個Text查找下一個ButtonNamebtnFindCancel查
34、找頁:取消Text取消TextBoxNametxtReplaceFind替換頁:查找文本TextBoxNametxtReplaceReplace替換頁:替換文本CheckBoxNamecbReplaceWholeWord替換頁:全字匹配Text全字匹配CheckBoxNamecbReplaceMatchCase替換頁:區(qū)分大小寫Text區(qū)分大小寫B(tài)uttonNamebtnReplaceFindNext查找頁:查找下一個Text查找下一個ButtonNamebtnReplaceReplace查找頁:替換Text替換ButtonNamebtnReplaceReplaceAll查找頁:全部替換Tex
35、t全部替換ButtonNamebtnReplaceCancel查找頁:取消Text取消private void btnFindFindNext_Click(object sender, EventArgs e) _findStr = txtFindFind.Text; _findOption = RichTextBoxFinds.None; if (cbFindWholeWord.Checked) _findOption |= RichTextBoxFinds.WholeWord; if (cbFindMatchCase.Checked) _findOption |= RichTextBoxF
36、inds.MatchCase; _editor.Find(_findStr, _findOption); private void btnFindCancel_Click(object sender, EventArgs e) Close(); private void btnReplaceFindNext_Click(object sender, EventArgs e) _findStr = txtReplaceFind.Text; _findOption = RichTextBoxFinds.None; if (cbReplaceWholeWord.Checked) _findOptio
37、n |= RichTextBoxFinds.WholeWord; if (cbReplaceMatchCase.Checked)_findOption |= RichTextBoxFinds.MatchCase; _editor.Find(_findStr, _findOption); private void btnReplaceReplace_Click(object sender,EventArgs e) _findStr = txtReplaceFind.Text; _replaceStr = txtReplaceReplace.Text; _findOption = RichText
38、BoxFinds.None; _editor.Replace(_findStr, _replaceStr, _findOption); if (cbReplaceWholeWord.Checked) _findOption |= RichTextBoxFinds.WholeWord; if (cbReplaceMatchCase.Checked) _findOption |= RichTextBoxFinds.MatchCase; private void btnReplaceReplaceAll_Click(object sender, EventArgs e) _findStr = txt
39、ReplaceFind.Text; _replaceStr = txtReplaceReplace.Text; _findOption = RichTextBoxFinds.None; if (cbReplaceWholeWord.Checked) _findOption |= RichTextBoxFinds.WholeWord; if (cbReplaceMatchCase.Checked) _findOption |= RichTextBoxFinds.MatchCase; _editor.ReplaceAll(_findStr, _replaceStr, _findOption); p
40、rivate void btnReplaceCancel_Click(object sender, EventArgs e) Close(); private void txtFindFind_TextChanged(object sender, EventArgs e) if (txtFindFind.Text != "") btnFindFindNext.Enabled = true; else btnFindFindNext.Enabled = false; 6.9 打印功能實現(xiàn)無論是預(yù)覽還是打印,主要還是要依賴PrintDocument控件來完成的,響應(yīng)該控件的Pr
41、intPage事件,在該事件響應(yīng)中真正輸出每頁的容。下面幾個功能的實現(xiàn),有些容是相互關(guān)系,如:要顯示或打印的容、當(dāng)前顯示或打印的字體、當(dāng)前的打印機設(shè)置和頁面設(shè)置,所以,添加四個數(shù)據(jù)成員如下:/ 下面幾個數(shù)據(jù)成員用于打印 private StringReader _srPrint = null; / 打印的容 private Font _printFont; / 打印字體 PrinterSettings _printerSettings = new PrinterSettings(); / 打印機設(shè)置 PageSettings _pageSettings = new PageSettings()
42、; / 頁面設(shè)置6.9.1 預(yù)覽創(chuàng)建打印預(yù)覽對話框,將當(dāng)前編輯器中的文本讀到一個文本流StringReader中,設(shè)置打印字體與文件編輯器中的字體一樣,設(shè)置PrintDocument控件的頁面設(shè)置為用戶設(shè)置的值,將PrintDocument控件與預(yù)覽對話框關(guān)聯(lián)起來,調(diào)用預(yù)覽對話框,即可預(yù)覽文本編輯器中的容。private void miFilePreview_Click(object sender, EventArgs e) PrintPreviewDialog dlgprintPreview = new PrintPreviewDialog();dlgprintPreview.Documen
43、t = new System.Drawing.Printing.PrintDocument();dlgprintPreview.FormBorderStyle = FormBorderStyle.Fixed3D; dlgprintPreview.ShowDialog(); 6.9.2 打印創(chuàng)建打印對話框,將當(dāng)前編輯器中的文本讀到一個文本流StringReader中,設(shè)置打印字體與文件編輯器中的字體一樣,設(shè)置PrintDocument控件的頁面設(shè)置為用戶設(shè)置的值,將PrintDocument控件與打印對話框關(guān)聯(lián)起來,調(diào)用打印對話框,即可打印文本編輯器中的容。private void mnPrin
44、t_Click(object sender, EventArgs e) dlgprint.Document = docPrint; if (dlgprint.ShowDialog() != DialogResult.Cancel) docPrint.Print(); 6.9.3 設(shè)置打印機和設(shè)置頁面這兩個功能是關(guān)聯(lián)的,以設(shè)置頁面為主,在設(shè)置頁面中包含了設(shè)置打印機功能。創(chuàng)建頁面設(shè)置對話框,設(shè)置對話框的當(dāng)前打印機參數(shù)和頁面參數(shù),顯示對話框,用戶可以修改打印機或頁面的參數(shù),確認后,即可保存當(dāng)前的設(shè)置。private void miPrintPrinterSetup_Click(object sender, EventArgs e) / 創(chuàng)建頁面設(shè)置對話框 PageSetupDialog dlgPageSetup = new PageSetupDialog(); / 使用用戶指定的打印機設(shè)置:這里需要既設(shè)置打印機設(shè)置,還要設(shè)置頁面設(shè)置 dlgPageSetup.P
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024公園景觀設(shè)計與綠化采購協(xié)議
- 《婚約財產(chǎn)法律問題研究》
- 《特色村寨建設(shè)與發(fā)展休閑農(nóng)業(yè)研究》
- 《碳系復(fù)合電熱膜的制備及其熱輻射性能的研究》
- 癌癥基因特征分析
- 《藍莓快繁及誘導(dǎo)加倍技術(shù)的研究》
- 2024年多功能廳租賃協(xié)議范本
- 《YR企業(yè)存貨審計案例研究》
- 《巢湖流域多環(huán)芳烴的分布特征、風(fēng)險評價及生物質(zhì)炭對其吸附研究》
- 2024-2030年中國榨菜行業(yè)營銷模式及投資前景預(yù)測報告
- 交流繞組理論
- 長沙市建筑節(jié)能與綠色建筑相關(guān)技術(shù)措施實施情況表
- 用火用電用氣安全
- 心外科工作制度(12項工作制度)
- 課堂大比武活動總結(jié)
- 2023學(xué)年完整公開課版夜黑黑
- 優(yōu)雅小主婦的美容養(yǎng)顏經(jīng)
- 初中藝術(shù)鄂教七年級上冊漫步藝術(shù)長廊舞劇欣賞《永不消逝的電波》
- 第章WindowsServer網(wǎng)絡(luò)應(yīng)用服務(wù)器
- 景區(qū)解說系統(tǒng)
- 注冊電子郵箱PT課件
評論
0/150
提交評論