实验七 单文档和多文档.docx
《实验七 单文档和多文档.docx》由会员分享,可在线阅读,更多相关《实验七 单文档和多文档.docx(18页珍藏版)》请在冰豆网上搜索。
实验七单文档和多文档
C#程序设计与开发实战实验报告
班级:
14软件2
姓名:
学号
实验名称:
实验七单文档和多文档编程
完成时间
2016/6/12
一、实验目的
1.掌握单文档窗体(SDI)的主菜单的设置和编程、工具栏设置和编程。
2.掌握多文档窗体(MDI)的主菜单的设置和编程、工具栏设置和编程。
3.掌握多文档窗体(MDI)的快捷菜单的设置和编程。
二、实验内容
1.试编写单文档Windows应用程序,完成下列要求:
(1)Form1窗体设计界面如下,该程序功能:
实现简易记事本的功能。
(2)窗口中工作区是一个richTextBox,可以输入文字,可以随窗口的变化而变化。
(3)主菜单:
文件{新建、打开、保存}、编辑{剪切、复制、粘贴}、格式{字体、颜色}、退出;
(4)工具栏:
新建、打开、保存、剪切、复制、粘贴、字体(comboBox下拉式列表框)、颜色(comboBox下拉式列表框);
(5)要求实现以上菜单项和工具的所有功能;
提示:
工具栏中的“字体”comboBox的字体样式获取可使用以下代码:
(注意添加命名空间的引入)
工具栏中的“颜色”comboBox的颜色,可简单设置为红色、蓝色、绿色、黄色四种即可。
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.Windows.Forms;
usingSystem.Drawing.Text;
namespaceWindowsFormsApplication5
{
publicpartialclassForm1:
Form
publicForm1()
InitializeComponent();
}
privateintk=0;
privatevoid退出ToolStripMenuItem_Click(objectsender,EventArgse)
if(MessageBox.Show("是否退出","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Warning)==DialogResult.Yes)
if(k==1)
if(MessageBox.Show("是否保存","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Warning)==DialogResult.Yes)
SaveFileDialogsfdialog=newSaveFileDialog();
if(sfdialog.ShowDialog()==DialogResult.OK)
richTextBox1.SaveFile(sfdialog.FileName,RichTextBoxStreamType.RichText);
this.Close();
privatevoidrichTextBox1_TextChanged(objectsender,EventArgse)
k=1;
privatevoid打开ToolStripMenuItem1_Click(objectsender,EventArgse)
OpenFileDialogodialog=newOpenFileDialog();
if(odialog.ShowDialog()==DialogResult.OK)
k=0;
richTextBox1.LoadFile(odialog.FileName,RichTextBoxStreamType.RichText);
privatevoid字体ToolStripMenuItem_Click(objectsender,EventArgse)
FontDialogfdialog=newFontDialog();
if(fdialog.ShowDialog()==DialogResult.OK)
richTextBox1.SelectionFont=fdialog.Font;
privatevoid颜色ToolStripMenuItem_Click(objectsender,EventArgse)
ColorDialogcdialog=newColorDialog();
if(cdialog.ShowDialog()==DialogResult.OK)
richTextBox1.SelectionColor=cdialog.Color;
privatevoidtoolStripButton1_Click(objectsender,EventArgse)
打开ToolStripMenuItem1_Click(sender,e);
privatevoidtoolStripButton2_Click(objectsender,EventArgse)
保存ToolStripMenuItem_Click(sender,e);
privatevoidtoolStripButton3_Click(objectsender,EventArgse)
this.richTextBox1.Cut();
privatevoid剪切ToolStripMenuItem_Click(objectsender,EventArgse)
privatevoid复制ToolStripMenuItem_Click(objectsender,EventArgse)
this.richTextBox1.Copy();
privatevoid粘贴ToolStripMenuItem_Click(objectsender,EventArgse)
this.richTextBox1.Paste();
privatevoidtoolStripButton4_Click(objectsender,EventArgse)
privatevoidtoolStripButton5_Click(objectsender,EventArgse)
privatevoidtoolStripComboBox2_TextChanged(objectsender,EventArgse)
strings=toolStripComboBox2.SelectedItem.ToString();
switch(s)
case"黄色":
richTextBox1.SelectionColor=Color.Yellow;break;
case"蓝色":
richTextBox1.SelectionColor=Color.Blue;break;
case"绿色":
richTextBox1.SelectionColor=Color.Green;break;
case"红色":
richTextBox1.SelectionColor=Color.Red;break;
publicInstalledFontCollectionfont;
publicFontFamily[]family;
privatevoidForm1_Load(objectsender,EventArgse)
font=newInstalledFontCollection();
family=font.Families;
for(inti=0;i{toolStripComboBox1.Items.Add(family[i].Name);}}privatevoidtoolStripComboBox1_SelectedIndexChanged(objectsender,EventArgse){Fontf=newSystem.Drawing.Font(toolStripComboBox2.SelectedItem.ToString(),10);richTextBox1.SelectionFont=f;}privatevoid保存ToolStripMenuItem_Click(objectsender,EventArgse){SaveFileDialogsfdialog=newSaveFileDialog();if(sfdialog.ShowDialog()==DialogResult.OK){richTextBox1.SaveFile(sfdialog.FileName,RichTextBoxStreamType.RichText);}}}}2.试编写多文档Windows应用程序,实现简易Word的功能,完成下列要求:(1)Form1是主窗体,Form2是子窗体。(2)Form2窗口中工作区是一个richTextBox,可以输入文字,可以随窗口的变化而变化。(3)主菜单:文件{新建、打开、保存,退出}、窗口{层叠窗口、水平平铺、垂直平铺};(4)工具栏:新建、打开、保存;(5)单击子窗体的工作区时,弹出快捷菜单,该菜单项有两组,分别是:剪切、复制、粘贴,字体、颜色;(6)要求实现以上菜单项、工具栏和快捷菜单的所有功能;(7)单击新建时,新建的窗口如下:(8)单击打开时,要求打开的文件名显示在窗口上,如下所示:(9)单击子窗体的关闭按钮时,如果richTextBox中的内容被修改,则弹出对话框,提示保存。单击主窗体的关闭按钮时,弹出对话框提示是否退出程序。usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;namespaceTest2{publicpartialclassForm2:Form{publicBooleanTextchanged=false;//判断文本框内容是否改变publicForm2(){InitializeComponent();richTextBox1.ContextMenuStrip=contextMenuStrip1;}privatevoid剪切ToolStripMenuItem_Click(objectsender,EventArgse){this.richTextBox1.Cut();}privatevoid复制ToolStripMenuItem_Click(objectsender,EventArgse){this.richTextBox1.Copy();}privatevoid粘贴ToolStripMenuItem_Click(objectsender,EventArgse){this.richTextBox1.Paste();}privatevoid字体ToolStripMenuItem_Click(objectsender,EventArgse){FontDialogfontdig=newFontDialog();DialogResultdlg=fontdig.ShowDialog();//弹出设置字体的对话框if(dlg==DialogResult.OK){richTextBox1.SelectionFont=fontdig.Font;//设置新字体}}privatevoid颜色ToolStripMenuItem_Click(objectsender,EventArgse){ColorDialogcolordig=newColorDialog();DialogResultdlg=colordig.ShowDialog();//弹出设置颜色的对话框if(dlg==DialogResult.OK){richTextBox1.SelectionColor=colordig.Color;//设置新颜色}}//文本框内容改变时触发事件privatevoidrichTextBox1_TextChanged(objectsender,EventArgse){Textchanged=true;}//点击关闭按钮触发事件privatevoidForm2_FormClosing(objectsender,FormClosingEventArgse){if(MessageBox.Show("文本框内容已被修改,是否保存内容?","提示信息",MessageBoxButtons.YesNo)==DialogResult.Yes){SaveFileDialogsavedig=newSaveFileDialog();DialogResultdlg=savedig.ShowDialog();if(dlg==DialogResult.OK){richTextBox1.SaveFile(savedig.FileName,RichTextBoxStreamType.RichText);}else{e.Cancel=true;//如果用户不保存文件,则不执行关闭窗口事件}}}//当窗体改变大小触发事件privatevoidForm2_Resize(objectsender,EventArgse){richTextBox1.Size=newSize(this.Size.Width-15,this.Size.Height-15);}privatevoidForm2_Load(objectsender,EventArgse){}}}usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;namespaceTest2{publicpartialclassForm1:Form{intcount=1;//统计子窗体数量publicstringfilename=null;//保存的文件名publicForm1(){InitializeComponent();}privatevoid退出ToolStripMenuItem_Click(objectsender,EventArgse){this.Close();}privatevoidForm1_Load(objectsender,EventArgse){this.IsMdiContainer=true;//使当前窗体成为父窗体}//主菜单栏,文件,新建privatevoid新建ToolStripMenuItem_Click(objectsender,EventArgse){Form2f2=newForm2();f2.Text="新建文件"+count;count++;f2.MdiParent=this;//使其成为当前MDI父窗体的子窗体f2.Show();}//主菜单栏,文件,打开privatevoid打开ToolStripMenuItem_Click(objectsender,EventArgse){OpenFileDialogopenfile=newOpenFileDialog();DialogResultdlg=openfile.ShowDialog();//弹出打开文件的对话框try{if(dlg==DialogResult.OK){stringname=openfile.FileName;//获取文件的名称filename=name;Form2f2=newForm2();f2.Text="新建文件"+count;count++;f2.MdiParent=this;//使其成为当前MDI父窗体的子窗体f2.richTextBox1.LoadFile(name,RichTextBoxStreamType.RichText);//打开选择的文件f2.Text=name;//打开的文件名显示在窗口上f2.Show();}}catch(Exception){MessageBox.Show("打开文件错误!","读取文件错误",MessageBoxButtons.OK,MessageBoxIcon.Error);}}//主菜单栏,文件,保存privatevoid保存ToolStripMenuItem_Click(objectsender,EventArgse){//判断当前文件是否已经保存:若没有保存则调用另存为方法;若已经保存,则直接调用文本框的保存方法if(filename!=null){Form2f2=(Form2)this.ActiveMdiChild;//获取当前活动的子窗体f2.richTextBox1.SaveFile(filename,RichTextBoxStreamType.RichText);//保存内容}else{另存为ToolStripMenuItem_Click(sender,e);}}//点击关闭按钮触发事件privatevoidForm1_FormClosing(objectsender,FormClosingEventArgse){if(MessageBox.Show("是否退出程序?","提示信息",MessageBoxButtons.YesNo)==DialogResult.Yes){e.Cancel=false;//点击Yes:继续执行关闭窗口事件}else{e.Cancel=true;//点击NO:不执行关闭窗口事件}}//工具栏,新建privatevoidtoolStripButton6_Click(objectsender,EventArgse){新建ToolStripMenuItem_Click(sender,e);}//工具栏,打开privatevoidtoolStripButton1_Click(objectsender,EventArgse){打开ToolStripMenuItem_Click(sender,e);}//工具栏,保存privatevoidtoolStripButton2_Click(objectsender,EventArgse){保存ToolStripMenuItem_Click(sender,e);}privatevoid层叠窗口ToolStripMenuItem_Click(objectsender,EventArgse){this.LayoutMdi(MdiLayout.Cascade);//设置层叠效果}privatevoid水平平铺ToolStripMenuItem_Click(objectsender,EventArgse){this.LayoutMdi(MdiLayout.TileHorizontal);//设置水平平铺效果}privatevoid垂直平铺ToolStripMenuItem_Click(objectsender,EventArgse){this.LayoutMdi(MdiLayout.TileVertical);//设置垂直平铺效果}//主菜单栏,另存为privatevoid另存为ToolStripMenuItem_Click(objectsender,EventArgse){try{SaveFileDialogsavedig=newSaveFileDialog();DialogResultdlg=savedig.ShowDialog();if(dlg==DialogResult.OK){Form2f2=(Form2)this.ActiveMdiChild;//获取当前活动的子窗体f2.richTextBox1.SaveFile(savedig.FileName,RichTextBoxStreamType.RichText);//保存内容fi
toolStripComboBox1.Items.Add(family[i].Name);
privatevoidtoolStripComboBox1_SelectedIndexChanged(objectsender,EventArgse)
Fontf=newSystem.Drawing.Font(toolStripComboBox2.SelectedItem.ToString(),10);
richTextBox1.SelectionFont=f;
privatevoid保存ToolStripMenuItem_Click(objectsender,EventArgse)
2.试编写多文档Windows应用程序,实现简易Word的功能,完成下列要求:
(1)Form1是主窗体,Form2是子窗体。
(2)Form2窗口中工作区是一个richTextBox,可以输入文字,可以随窗口的变化而变化。
文件{新建、打开、保存,退出}、窗口{层叠窗口、水平平铺、垂直平铺};
新建、打开、保存;
(5)单击子窗体的工作区时,弹出快捷菜单,该菜单项有两组,分别是:
剪切、复制、粘贴,字体、颜色;
(6)要求实现以上菜单项、工具栏和快捷菜单的所有功能;
(7)单击新建时,新建的窗口如下:
(8)单击打开时,要求打开的文件名显示在窗口上,如下所示:
(9)单击子窗体的关闭按钮时,如果richTextBox中的内容被修改,则弹出对话框,提示保存。
单击主窗体的关闭按钮时,弹出对话框提示是否退出程序。
namespaceTest2
publicpartialclassForm2:
publicBooleanTextchanged=false;//判断文本框内容是否改变
publicForm2()
richTextBox1.ContextMenuStrip=contextMenuStrip1;
FontDialogfontdig=newFontDialog();
DialogResultdlg=fontdig.ShowDialog();//弹出设置字体的对话框
if(dlg==DialogResult.OK)
richTextBox1.SelectionFont=fontdig.Font;//设置新字体
ColorDialogcolordig=newColorDialog();
DialogResultdlg=colordig.ShowDialog();//弹出设置颜色的对话框
richTextBox1.SelectionColor=colordig.Color;//设置新颜色
//文本框内容改变时触发事件
Textchanged=true;
//点击关闭按钮触发事件
privatevoidForm2_FormClosing(objectsender,FormClosingEventArgse)
if(MessageBox.Show("文本框内容已被修改,是否保存内容?
","提示信息",MessageBoxButtons.YesNo)==DialogResult.Yes)
SaveFileDialogsavedig=newSaveFileDialog();
DialogResultdlg=savedig.ShowDialog();
richTextBox1.SaveFile(savedig.FileName,RichTextBoxStreamType.RichText);
else
e.Cancel=true;//如果用户不保存文件,则不执行关闭窗口事件
//当窗体改变大小触发事件
privatevoidForm2_Resize(objectsender,EventArgse)
richTextBox1.Size=newSize(this.Size.Width-15,this.Size.Height-15);
privatevoidForm2_Load(objectsender,EventArgse)
intcount=1;//统计子窗体数量
publicstringfilename=null;//保存的文件名
this.IsMdiContainer=true;//使当前窗体成为父窗体
//主菜单栏,文件,新建
privatevoid新建ToolStripMenuItem_Click(objectsender,EventArgse)
Form2f2=newForm2();
f2.Text="新建文件"+count;
count++;
f2.MdiParent=this;//使其成为当前MDI父窗体的子窗体
f2.Show();
//主菜单栏,文件,打开
privatevoid打开ToolStripMenuItem_Click(objectsender,EventArgse)
OpenFileDialogopenfile=newOpenFileDialog();
DialogResultdlg=openfile.ShowDialog();//弹出打开文件的对话框
try
stringname=openfile.FileName;//获取文件的名称
filename=name;
f2.richTextBox1.LoadFile(name,RichTextBoxStreamType.RichText);//打开选择的文件
f2.Text=name;//打开的文件名显示在窗口上
catch(Exception)
MessageBox.Show("打开文件错误!
","读取文件错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
//主菜单栏,文件,保存
//判断当前文件是否已经保存:
若没有保存则调用另存为方法;若已经保存,则直接调用文本框的保存方法
if(filename!
=null)
Form2f2=(Form2)this.ActiveMdiChild;//获取当前活动的子窗体
f2.richTextBox1.SaveFile(filename,RichTextBoxStreamType.RichText);//保存内容
另存为ToolStripMenuItem_Click(sender,e);
privatevoidForm1_FormClosing(objectsender,FormClosingEventArgse)
if(MessageBox.Show("是否退出程序?
e.Cancel=false;//点击Yes:
继续执行关闭窗口事件
e.Cancel=true;//点击NO:
不执行关闭窗口事件
//工具栏,新建
privatevoidtoolStripButton6_Click(objectsender,EventArgse)
新建ToolStripMenuItem_Click(sender,e);
//工具栏,打开
打开ToolStripMenuItem_Click(sender,e);
//工具栏,保存
privatevoid层叠窗口ToolStripMenuItem_Click(objectsender,EventArgse)
this.LayoutMdi(MdiLayout.Cascade);//设置层叠效果
privatevoid水平平铺ToolStripMenuItem_Click(objectsender,EventArgse)
this.LayoutMdi(MdiLayout.TileHorizontal);//设置水平平铺效果
privatevoid垂直平铺ToolStripMenuItem_Click(objectsender,EventArgse)
this.LayoutMdi(MdiLayout.TileVertical);//设置垂直平铺效果
//主菜单栏,另存为
privatevoid另存为ToolStripMenuItem_Click(objectsender,EventArgse)
f2.richTextBox1.SaveFile(savedig.FileName,RichTextBoxStreamType.RichText);//保存内容
fi
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1