




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、用C#編寫“文本編輯器”實(shí)驗(yàn)報(bào)告實(shí)驗(yàn) 3 項(xiàng)目名稱: 文本編輯器 1、實(shí)驗(yàn)?zāi)康暮鸵笸ㄟ^本實(shí)驗(yàn),使得學(xué)生理解操作系統(tǒng)目錄與文件的概念,掌握文件流的讀寫操作。要求編寫一個(gè)滿足以下條件的文本編輯器程序。(1)程序界面與操作系統(tǒng)中的記事本界面類似。(2)程序可以打開、保存和編輯txt文本文件。(3)程序可以查找和替換文本內(nèi)容中的指定字符串2、程序代碼using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.L
2、inq;using System.Text;using System.Windows.Forms;using System.IO;namespace 記事本 public partial class frmNotepad : Form bool b = false;/布爾變量b用于判斷文件是新建的還是從磁盤打開。true表示文件從磁盤打開的,false表示文件是新建的,默認(rèn)值為false bool s = true;/布爾變量s用于判斷文件是否被保存。false表示未被保存,默認(rèn)值為true public frmNotepad() InitializeComponent(); /*多格式文本框
3、TextChange的事件代碼*/ private void rtxtNotepad_TextChanged(object sender, EventArgs e) /文本被修改后,設(shè)置s為false,表示文件未被保存 s = false; /*【新建】菜單代碼*/ private void tsmiNew_Click(object sender, EventArgs e) /判斷當(dāng)前文件是否從磁盤打開,或者新建時(shí)文檔不為空,并且文件未被保存 if (b = true | rtxtNotepad.Text.Trim() != ) /若文件未被保存 if (s = false) string r
4、esult; result = MessageBox.Show(文件尚未保存,是否保存?, 保存文件, MessageBoxButtons.YesNoCancel).ToString(); switch (result) case Yes: /若文件是從磁盤打開的 if (b = true) /按文件打開的路徑保存文件 rtxtNotepad.SaveFile(odlgNotepad.FileName); /若文件不是從磁盤打開的 else if (sdlgNotepad.ShowDialog() = DialogResult.OK) rtxtNotepad.SaveFile(sdlgNote
5、pad.FileName); s = true; rtxtNotepad.Text = ; break; case No: b = false; rtxtNotepad.Text = ; break; /*【打開】菜單代碼*/ private void tsmiOpen_Click(object sender, EventArgs e) if (b = true | rtxtNotepad.Text.Trim() != ) string result; result = MessageBox.Show(文件尚未保存,是否保存?, 保存文件, MessageBoxButtons.YesNoCan
6、cel).ToString(); switch (result) case Yes: if (b = true) rtxtNotepad.SaveFile(odlgNotepad.FileName); else if (sdlgNotepad.ShowDialog() = DialogResult.OK) rtxtNotepad.SaveFile(sdlgNotepad.FileName); s = true; rtxtNotepad.Text = ; break; case No: b = false; rtxtNotepad.Text = ; break; odlgNotepad.Rest
7、oreDirectory = true; if (odlgNotepad.ShowDialog() = DialogResult.OK) & odlgNotepad.FileName != ) rtxtNotepad.LoadFile(odlgNotepad.FileName); b = true; s = true; /*【保存】菜單代碼*/ private void tsmiSave_Click(object sender, EventArgs e) /若文件從磁盤打開并且修改了其內(nèi)容 if (b = true & rtxtNotepad.Modified = true) rtxtNote
8、pad.SaveFile(odlgNotepad.FileName); s = true; else if (b = false & rtxtNotepad.Text.Trim() != & sdlgNotepad.ShowDialog() = DialogResult.OK) rtxtNotepad.SaveFile(sdlgNotepad.FileName); s = true; b = true; odlgNotepad.FileName = sdlgNotepad.FileName; /*【另存為】菜單代碼*/ private void tsmiSaveAs_Click(object
9、sender, EventArgs e) if (sdlgNotepad.ShowDialog() = DialogResult.OK) rtxtNotepad.SaveFile(sdlgNotepad.FileName); s = true; /*【退出】菜單代碼*/ private void tsmiClose_Click(object sender, EventArgs e) Application.Exit(); /【撤銷】菜單代碼 private void tsmiUndo_Click(object sender, EventArgs e) rtxtNotepad.Undo(); /
10、【復(fù)制】菜單代碼 private void tsmiCopy_Click(object sender, EventArgs e) rtxtNotepad.Copy(); /【剪切】菜單代碼 private void tsmiCut_Click(object sender, EventArgs e) rtxtNotepad.Cut(); /【粘貼】菜單代碼 private void tsmiPaste_Click(object sender, EventArgs e) rtxtNotepad.Paste(); /【全選】菜單代碼 private void tsmiSelectAll_Click(
11、object sender, EventArgs e) rtxtNotepad.SelectAll(); /【日期】菜單代碼 private void tsmiDate_Click(object sender, EventArgs e) rtxtNotepad.AppendText(System.DateTime.Now.ToString(); /【自行換行】菜單代碼 private void tsmiAuto_Click(object sender, EventArgs e) if (tsmiAuto.Checked = false) tsmiAuto.Checked = true;/選中該
12、菜單項(xiàng) rtxtNotepad.WordWrap = true;/設(shè)置為自動(dòng)換行 else tsmiAuto.Checked = false; rtxtNotepad.WordWrap = false; /【字體】菜單代碼 private void tsmiFont_Click(object sender, EventArgs e) fdlgNotepad.ShowColor = true; if (fdlgNotepad.ShowDialog() = DialogResult.OK) rtxtNotepad.SelectionColor = fdlgNotepad.Color; rtxtNo
13、tepad.SelectionFont = fdlgNotepad.Font; /【工具欄】菜單代碼 private void tsmiToolStrip_Click(object sender, EventArgs e) Point point; if (tsmiToolStrip.Checked = true) point = new Point(0, 25);/隱藏工具欄時(shí),把坐標(biāo)設(shè)為(0,25),因?yàn)椴藛蔚母叨葹?4 tsmiToolStrip.Checked = false; tlsNotepad.Visible = false; rtxtNotepad.Location = poi
14、nt;/設(shè)置多格式文本框左上角的位置 rtxtNotepad.Height += tlsNotepad.Height;/隱藏工具欄后,增加文本框的高度 else /顯示工具欄時(shí),多格式文本框左上角的位置為(0,50),因?yàn)楣ぞ邫诘母叨?5加上菜單的高度25=50 point = new Point(0, 50); tsmiToolStrip.Checked = true; tlsNotepad.Visible = true; rtxtNotepad.Location = point; rtxtNotepad.Height -= tlsNotepad.Height; /【狀態(tài)欄】菜單代碼 pri
15、vate void tsmiStatusStrip_Click(object sender, EventArgs e) if (tsmiStatusStrip.Checked = true) tsmiStatusStrip.Checked = false; stsNotepad.Visible = false; rtxtNotepad.Height += stsNotepad.Height; else tsmiStatusStrip.Checked = true; stsNotepad.Visible = true; rtxtNotepad.Height -= stsNotepad.Heigh
16、t; /【關(guān)于記事本】菜單代碼 private void tsmiAbout_Click(object sender, EventArgs e) frmAbout ob_FrmAbout = new frmAbout(); ob_FrmAbout.Show(); private void tlsNotepad_ItemClicked(object sender, ToolStripItemClickedEventArgs e) int n;/變量n用來接收按下按鈕的索引號(hào) n = tlsNotepad.Items.IndexOf(e.ClickedItem); switch (n) case
17、1: tsmiNew_Click(sender, e); break; case 2: tsmiOpen_Click(sender, e); break; case 3: tsmiSave_Click(sender, e); break; case 4: tsmiCut_Click(sender, e); break; case 5: tsmiCopy_Click(sender, e); break; case 6: tsmiPaste_Click(sender, e); break; case 7: tsmiAbout_Click(sender, e); break; /計(jì)時(shí)器控件代碼 private void tmrNotepad_Tick(object sender, EventArgs e) tssLbl
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- YY/T 0107-2024眼科A型超聲測量儀
- 肉雞養(yǎng)殖購銷合同樣本
- 建筑外墻清洗服務(wù)合同范本
- 合同終止通知書模板與合同范本
- 工程技術(shù)人才勞動(dòng)合同書
- 應(yīng)收賬款質(zhì)押貸款合同
- 機(jī)動(dòng)車維修服務(wù)合同標(biāo)準(zhǔn)范本
- 勞動(dòng)合同簡化版合同模板
- 個(gè)人貸款合同還款計(jì)劃書范本大全
- 簡版?zhèn)€人商業(yè)空間租賃合同
- 《單片機(jī)應(yīng)用實(shí)訓(xùn)教程》課件第4章
- 系統(tǒng)思維與系統(tǒng)決策:系統(tǒng)動(dòng)力學(xué)(中央財(cái)經(jīng)大學(xué))知到智慧樹章節(jié)答案
- 貨車司機(jī) 合股 合同范例
- 輸電線路運(yùn)行項(xiàng)目現(xiàn)場作業(yè)安全風(fēng)險(xiǎn)識(shí)別防范措施
- 2023-2024學(xué)年廣東省廣州市天河區(qū)八年級(jí)(上)期末英語試卷
- 2024年河南省公務(wù)員錄用考試《行測》試題及答案解析
- DB 37T5061-2016 住宅小區(qū)供配電設(shè)施建設(shè)標(biāo)準(zhǔn)
- 金屬包裝容器生產(chǎn)數(shù)據(jù)分析考核試卷
- Unit 3 Theme Reading 第課4時(shí)教學(xué)設(shè)計(jì) 2024-2025學(xué)年仁愛版(2024)七年級(jí)英語上冊
- 鎖骨骨折的護(hù)理查房
- 譯林牛津版八年級(jí)下冊英語全冊課件
評(píng)論
0/150
提交評(píng)論