C#文本编辑器 实验报告.docx
- 文档编号:5077354
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:31
- 大小:432.79KB
C#文本编辑器 实验报告.docx
《C#文本编辑器 实验报告.docx》由会员分享,可在线阅读,更多相关《C#文本编辑器 实验报告.docx(31页珍藏版)》请在冰点文库上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C#文本编辑器 实验报告 C# 文本 编辑器 实验 报告