C#文本编辑器 实验报告.docx

上传人:b****4 文档编号:5077354 上传时间:2023-05-08 格式:DOCX 页数:31 大小:432.79KB
下载 相关 举报
C#文本编辑器 实验报告.docx_第1页
第1页 / 共31页
C#文本编辑器 实验报告.docx_第2页
第2页 / 共31页
C#文本编辑器 实验报告.docx_第3页
第3页 / 共31页
C#文本编辑器 实验报告.docx_第4页
第4页 / 共31页
C#文本编辑器 实验报告.docx_第5页
第5页 / 共31页
C#文本编辑器 实验报告.docx_第6页
第6页 / 共31页
C#文本编辑器 实验报告.docx_第7页
第7页 / 共31页
C#文本编辑器 实验报告.docx_第8页
第8页 / 共31页
C#文本编辑器 实验报告.docx_第9页
第9页 / 共31页
C#文本编辑器 实验报告.docx_第10页
第10页 / 共31页
C#文本编辑器 实验报告.docx_第11页
第11页 / 共31页
C#文本编辑器 实验报告.docx_第12页
第12页 / 共31页
C#文本编辑器 实验报告.docx_第13页
第13页 / 共31页
C#文本编辑器 实验报告.docx_第14页
第14页 / 共31页
C#文本编辑器 实验报告.docx_第15页
第15页 / 共31页
C#文本编辑器 实验报告.docx_第16页
第16页 / 共31页
C#文本编辑器 实验报告.docx_第17页
第17页 / 共31页
C#文本编辑器 实验报告.docx_第18页
第18页 / 共31页
C#文本编辑器 实验报告.docx_第19页
第19页 / 共31页
C#文本编辑器 实验报告.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C#文本编辑器 实验报告.docx

《C#文本编辑器 实验报告.docx》由会员分享,可在线阅读,更多相关《C#文本编辑器 实验报告.docx(31页珍藏版)》请在冰点文库上搜索。

C#文本编辑器 实验报告.docx

C#文本编辑器实验报告

实验3文本编辑器

【实验目的】

⏹进一步实践windows窗口程序开发的流程;

⏹掌握并熟练使用RichTextBox、Button、MenuTrip控件。

【实验环境】

VisualStudio2005(或更高版本)

【实验内容】

设计一个基于RichTextBox的文本编辑器,要求实现文件打开、保存、字体和颜色修改、字符查找和替换功能,鼓励扩展其他功能。

【实验结果】

文件菜单:

打开程序编辑文本->文件->保存

保存结果:

编辑文本:

文件->打开(文件已修改打开询问保存)

点击“是”->继续打开此文件(点击“取消”或者关闭提示则不执行打开“否”则不保存)

打开后:

(上次打开操作保存结果在本次打开中体现)

文件->另存为

另存为结果:

编辑文本

文件->退出(退出提示保存)

点击“否”(点击“取消”或者关闭提示则不执行退出“是”则保存)

设置文件打开方式为本实验程序

双击文件:

使用本实验程序进行打开(由于上一次退出前选择“否”文本没有保存“准备退出”)

不修改文本文件->退出(由于文件没有修改不提示保存直接退出关闭窗口

同理)

编辑菜单:

编辑->查找(不演示撤销等操作、没有查找内容“查找下一个”处于禁用)

输入查找内容点击“查找下一个”:

再次点击“查找下一个”:

打钩区分大小写

选择方向向上

两次点击“查找下一个”:

取消打钩区分大小写

编辑->查找(没有查找内容和替换“查找下一个”“替换”...处于禁用)

打钩区分大小写输入查找内容和替换内容点击两次替换

取消打钩区分大小写点击全部替换

格式菜单:

格式->字体

确定后:

格式->颜色

确定后:

格式->对齐方式

全选格式->对齐方式->右对齐(不演示居中)

帮助->关于

【实验核心代码】

Form1(主窗口):

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;

namespaceFileEdit

{

publicpartialclassForm1:

Form

{

privatestringfilename;

privateRichTextBoxrtb=newRichTextBox();

publicForm1(stringpath)

{

InitializeComponent();

filename=path;

}

privatevoid打开OToolStripMenuItem_Click(objectsender,EventArgse)

{

if(!

richTextBox1.Text.Equals(rtb.Text))

{

DialogResultresult=MessageBox.Show("是否将更改保存到"+filename,"",MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question);

if(result==DialogResult.Yes)

this.保存SToolStripMenuItem_Click(sender,e);

elseif(result==DialogResult.Cancel)

return;

}

OpenFileDialogopen=newOpenFileDialog();

open.Filter="Word文档(*.rtf)|*.rtf";

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

{

richTextBox1.LoadFile(open.FileName,RichTextBoxStreamType.RichText);

rtb.Text=richTextBox1.Text;

filename=open.FileName;

this.Text=filename.Substring(filename.LastIndexOf('\\')+1)+"-文本编辑器";

}

}

privatevoid复制CToolStripMenuItem_Click(objectsender,EventArgse)

{

richTextBox1.Copy();

}

privatevoid剪切ToolStripMenuItem_Click(objectsender,EventArgse)

{

richTextBox1.Cut();

}

privatevoid粘贴VToolStripMenuItem_Click(objectsender,EventArgse)

{

richTextBox1.Paste();

}

privatevoid保存SToolStripMenuItem_Click(objectsender,EventArgse)

{

if(filename=="无标题")?

?

?

?

?

?

?

?

?

?

?

?

?

{

SaveFileDialogdlgSave=newSaveFileDialog();

dlgSave.InitialDirectory="c:

\tmp";

dlgSave.Filter="Word文档(*.rtf)|*.rtf";

dlgSave.Title="保存我的文件";

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

{

filename=dlgSave.FileName;

richTextBox1.SaveFile(filename,?

RichTextBoxStreamType.RichText);

}

}

else

{

richTextBox1.SaveFile(filename,RichTextBoxStreamType.RichText);

}

rtb.Text=richTextBox1.Text;

}

privatevoid新建NToolStripMenuItem_Click(objectsender,EventArgse)

{

if(!

richTextBox1.Text.Equals(rtb.Text))

{

DialogResultresult=MessageBox.Show("是否将更改保存到"+filename,"",MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question);

if(result==DialogResult.Yes)

this.保存SToolStripMenuItem_Click(sender,e);

elseif(result==DialogResult.Cancel)

return;

}

richTextBox1.Text="";

filename="无标题";

this.Text=filename+"-文本编辑器";

}

privatevoid另存为ToolStripMenuItem_Click(objectsender,EventArgse)

{

SaveFileDialogdlgSave=newSaveFileDialog();

dlgSave.InitialDirectory="c:

\tmp";

dlgSave.Filter="Word文档(*.rtf)|*.rtf";

dlgSave.Title="保存我的文件";

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

{

filename=dlgSave.FileName;

richTextBox1.SaveFile(filename,RichTextBoxStreamType.RichText);

rtb.Text=richTextBox1.Text;

}

}

privatevoid撤销ToolStripMenuItem_Click(objectsender,EventArgse)

{

richTextBox1.Undo();

}

privatevoid查找ToolStripMenuItem_Click(objectsender,EventArgse)

{

Formczcz=newFormcz(richTextBox1);

cz.Owner=this;

cz.Show();

}

privatevoid替换ToolStripMenuItem_Click(objectsender,EventArgse)

{

Formthth=newFormth();

th.Textbox=richTextBox1;

th.Owner=this;

th.Show();

}

privatevoid字体ToolStripMenuItem_Click(objectsender,EventArgse)

{

FontDialogdlgFont=newFontDialog();

dlgFont.ShowColor=true;

dlgFont.ShowApply=true;

if(richTextBox1.SelectionLength>0)

{

dlgFont.Font=richTextBox1.SelectionFont;

dlgFont.Color=richTextBox1.SelectionColor;

}

else

{

dlgFont.Font=richTextBox1.Font;

dlgFont.Color=richTextBox1.ForeColor;

}

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

{

if(richTextBox1.SelectionLength>0)

{

richTextBox1.SelectionFont=dlgFont.Font;

richTextBox1.SelectionColor=dlgFont.Color;

}

else

{

richTextBox1.Font=dlgFont.Font;

richTextBox1.ForeColor=dlgFont.Color;

}

}

}

privatevoid颜色ToolStripMenuItem_Click(objectsender,EventArgse)

{

ColorDialogdlgColor=newColorDialog();

if(richTextBox1.SelectionLength>0)

dlgColor.Color=richTextBox1.SelectionColor;

else

dlgColor.Color=richTextBox1.ForeColor;

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

{

if(richTextBox1.SelectionLength>0)

richTextBox1.SelectionColor=dlgColor.Color;

else

richTextBox1.ForeColor=dlgColor.Color;

}

}

privatevoid左对齐ToolStripMenuItem_Click(objectsender,EventArgse)

{

右对齐ToolStripMenuItem.Checked=false;

居中ToolStripMenuItem.Checked=false;

richTextBox1.SelectionAlignment=HorizontalAlignment.Left;

}

privatevoid右对齐ToolStripMenuItem_Click(objectsender,EventArgse)

{

左对齐ToolStripMenuItem.Checked=false;

居中ToolStripMenuItem.Checked=false;

richTextBox1.SelectionAlignment=HorizontalAlignment.Right;

}

privatevoid居中ToolStripMenuItem_Click(objectsender,EventArgse)

{

左对齐ToolStripMenuItem.Checked=false;

右对齐ToolStripMenuItem.Checked=false;

richTextBox1.SelectionAlignment=HorizontalAlignment.Center;

}

privatevoid关于ToolStripMenuItem1_Click(objectsender,EventArgse)

{

MessageBox.Show("作者:

软件120158号林鑫杰\n编写时间:

2014年9月28","关于",MessageBoxButtons.OK,MessageBoxIcon.Information);

}

privatevoidForm1_Load(objectsender,EventArgse)

{

richTextBox1.Text="";

rtb.Text=richTextBox1.Text;

if(filename==null)

{

filename="无标题";

this.Text=filename+"-文本编辑器";

}

else

{

richTextBox1.LoadFile(filename,RichTextBoxStreamType.RichText);

rtb.Text=richTextBox1.Text;

this.Text=filename.Substring(filename.LastIndexOf('\\')+1)+"-文本编辑器";

}

}

privatevoidForm1_FormClosing(objectsender,FormClosingEventArgse)

{

if(!

richTextBox1.Text.Equals(rtb.Text))

{

DialogResultresult=MessageBox.Show("是否将更改保存到"+filename,"退出",MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question);

if(result==DialogResult.No)

e.Cancel=false;

elseif(result==DialogResult.Yes)

this.保存SToolStripMenuItem_Click(sender,e);

}

}

privatevoid退出ToolStripMenuItem_Click(objectsender,EventArgse)

{

this.Close();

}

privatevoid全选ToolStripMenuItem_Click(objectsender,EventArgse)

{

richTextBox1.SelectAll();

}

}

}

Form2(查找窗口):

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;

namespaceFileEdit

{

publicpartialclassFormcz:

Form

{

privateRichTextBoxtextbox;

privatestaticinti;

privatestaticintj;

publicFormcz(RichTextBoxtextbox)

{

InitializeComponent();

this.textbox=textbox;

j=textbox.Text.Length;

i=0;

}

privatevoidbutton1_Click(objectsender,EventArgse)

{

if(radioButton1.Checked)

{

if(checkBox1.Checked)

j=textbox.Find(textBox1.Text,0,j,RichTextBoxFinds.Reverse|RichTextBoxFinds.MatchCase);

else

j=textbox.Find(textBox1.Text,0,j,RichTextBoxFinds.Reverse|RichTextBoxFinds.WholeWord);

}

else

{

if(checkBox1.Checked)

i=textbox.Find(textBox1.Text,i,RichTextBoxFinds.MatchCase);

else

i=textbox.Find(textBox1.Text,i,RichTextBoxFinds.WholeWord);

}

if(i==-1)

i=0;

else

{

i+=textBox1.Text.Length;

textbox.Focus();

}

if(j<=0)

j=textbox.Text.Length;

else

textbox.Focus();

}

privatevoidbutton2_Click(objectsender,EventArgse)

{

this.Close();

}

privatevoidtextBox1_TextChanged(objectsender,EventArgse)

{

if(this.textBox1.Text!

="")

this.button1.Enabled=true;

else

this.button1.Enabled=false;

}

privatevoidradioButton2_CheckedChanged(objectsender,EventArgse)

{

if(radioButton2.Checked==true)

radioButton2.Checked=false;

else

radioButton1.Checked=true;

j=textbox.Text.Length;

i=0;

}

privatevoidradioButton2_CheckedChanged_1(objectsender,EventArgse)

{

j=textbox.Text.Length;

i=0;

}

}

}

Form3(替换窗口):

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;

namespaceFileEdit

{

publicpartialclassFormth:

Form

{

privateRichTextBoxtextbox;

publicRichTextBoxTextbox

{

get{returnthis.textbox;}

set{this.textbox=value;}

}

privateinti;

publicFormth()

{

InitializeComponent();

}

privatevoidbutton1_Click(objectsender,EventArgse)

{

if(checkBox1.Checked)

i=textbox.Find(textBox1.Text,i,RichTextBoxFinds.MatchCase);

else

i=textbox.Find(textBox1.Text,i,RichTextBoxFinds.None);

if(i==-1)

i=0;

else

{

i+=textBox1.Text.Length;

textbox.Focus();

}

}

privatevoidbutton2_Click(objectsender,EventArgse)

{

if(checkBox1.Checked)

i=textbox.Find(textBox1.Text,i,RichTextBoxFinds.MatchCase);

else

i=textbox.Find(textBox1.Text,i,RichTextBoxFinds.None);

if(i==-1)

i=0;

else

{

textbox.SelectedText=te

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2