实验七 单文档和多文档.docx
- 文档编号:24706995
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:18
- 大小:91.30KB
实验七 单文档和多文档.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)
{
this.richTextBox1.Cut();
}
privatevoid复制ToolStripMenuItem_Click(objectsender,EventArgse)
{
this.richTextBox1.Copy();
}
privatevoid粘贴ToolStripMenuItem_Click(objectsender,EventArgse)
{
this.richTextBox1.Paste();
}
privatevoidtoolStripButton4_Click(objectsender,EventArgse)
{
this.richTextBox1.Copy();
}
privatevoidtoolStripButton5_Click(objectsender,EventArgse)
{
this.richTextBox1.Paste();
}
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验七 单文档和多文档 实验 文档