多文档窗体实验报告.docx
《多文档窗体实验报告.docx》由会员分享,可在线阅读,更多相关《多文档窗体实验报告.docx(13页珍藏版)》请在冰豆网上搜索。
![多文档窗体实验报告.docx](https://file1.bdocx.com/fileroot1/2023-2/23/59d5dd57-97e6-473d-958f-20ee6fb8e50a/59d5dd57-97e6-473d-958f-20ee6fb8e50a1.gif)
多文档窗体实验报告
精通C#与.NET4.0数据库开发
实验报告
实验题目:
多文档窗体
专业计算机科学与技术
学生姓名
班级学号
教师
指导单位
日期
教师评语
教师签名:
年月日
成绩评定
备注
一、实验目的
1.学会在VisualStudio2010中创建多文档应用程序。
2.学会在多文档窗体添加子窗体到父窗体。
3.学会操作、排列子窗体。
二、实验环境
VisualStudio2010
三、实验内容
例6-1:
源代码:
publicpartialclassFrmMDIMain:
Form
{
privateintchildFormNumber=0;
publicFrmMDIMain()
{
InitializeComponent();
}
privatevoidShowNewForm(objectsender,EventArgse)
{
FormchildForm=newForm();
childForm.MdiParent=this;
childForm.Text="窗口"+childFormNumber++;
childForm.Show();
}
privatevoidOpenFile(objectsender,EventArgse)
{
OpenFileDialogopenFileDialog=newOpenFileDialog();
openFileDialog.InitialDirectory=Environment.GetFolderPath(Environment.SpecialFolder.Personal);
openFileDialog.Filter="文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";
if(openFileDialog.ShowDialog(this)==DialogResult.OK)
{
stringFileName=openFileDialog.FileName;
}
}
privatevoidSaveAsToolStripMenuItem_Click(objectsender,EventArgse)
{
SaveFileDialogsaveFileDialog=newSaveFileDialog();
saveFileDialog.InitialDirectory=Environment.GetFolderPath(Environment.SpecialFolder.Personal);
saveFileDialog.Filter="文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";
if(saveFileDialog.ShowDialog(this)==DialogResult.OK)
{
stringFileName=saveFileDialog.FileName;
}
}
privatevoidExitToolsStripMenuItem_Click(objectsender,EventArgse)
{
this.Close();
}
privatevoidCutToolStripMenuItem_Click(objectsender,EventArgse)
{
}
privatevoidCopyToolStripMenuItem_Click(objectsender,EventArgse)
{
}
privatevoidPasteToolStripMenuItem_Click(objectsender,EventArgse)
{
}
privatevoidToolBarToolStripMenuItem_Click(objectsender,EventArgse)
{
toolStrip.Visible=toolBarToolStripMenuItem.Checked;
}
privatevoidStatusBarToolStripMenuItem_Click(objectsender,EventArgse)
{
statusStrip.Visible=statusBarToolStripMenuItem.Checked;
}
privatevoidCascadeToolStripMenuItem_Click(objectsender,EventArgse)
{
LayoutMdi(MdiLayout.Cascade);
}
privatevoidTileVerticalToolStripMenuItem_Click(objectsender,EventArgse)
{
LayoutMdi(MdiLayout.TileVertical);
}
privatevoidTileHorizontalToolStripMenuItem_Click(objectsender,EventArgse)
{
LayoutMdi(MdiLayout.TileHorizontal);
}
privatevoidArrangeIconsToolStripMenuItem_Click(objectsender,EventArgse)
{
LayoutMdi(MdiLayout.ArrangeIcons);
}
privatevoidCloseAllToolStripMenuItem_Click(objectsender,EventArgse)
{
foreach(FormchildForminMdiChildren)
{
childForm.Close();
}
}
privatevoidoptionsToolStripMenuItem_Click(objectsender,EventArgse)
{
}
privatevoidprintPreviewToolStripMenuItem_Click(objectsender,EventArgse)
{
}
privatevoidtsmiCloseCurFrm_Click(objectsender,EventArgse)
{
FormchildForm=this.ActiveMdiChild;//获取当前活动的子窗体
if(childForm!
=null)
{
childForm.Close();//关闭子窗体
}
}
}
例6-2:
(1)
源代码:
publicpartialclassFrmMain:
Form
{
privateintchildFormNumber=0;
publicFrmMain()
{
InitializeComponent();
}
privatevoidShowNewForm(objectsender,EventArgse)
{
FormchildForm=newForm();
childForm.MdiParent=this;
childForm.Text="窗口"+childFormNumber++;
childForm.Show();
}
privatevoidOpenFile(objectsender,EventArgse)
{
OpenFileDialogofdlg=newOpenFileDialog();//创建OpenFileDialog对象ofdlg
//设置打开文件对话框的默认路径为“我的文档”
ofdlg.InitialDirectory=Environment.GetFolderPath(Environment.SpecialFolder.Personal);
ofdlg.Filter="文本文件(*.txt)|*.txt";//设置只接受txt为扩展名的文件
if(ofdlg.ShowDialog(this)==DialogResult.OK)//显示打开文件对话框
{
stringfileName=ofdlg.FileName;//获取要打开的文件名
FrmReaderfrm=newFrmReader(fileName);//创建查看文件的子窗体frm
frm.MdiParent=this;//设置子窗体frm的父窗体为当前窗体
frm.Show();//显示子窗体
}
}
privatevoidSaveAsToolStripMenuItem_Click(objectsender,EventArgse)
{
SaveFileDialogsaveFileDialog=newSaveFileDialog();
saveFileDialog.InitialDirectory=Environment.GetFolderPath(Environment.SpecialFolder.Personal);
saveFileDialog.Filter="文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";
if(saveFileDialog.ShowDialog(this)==DialogResult.OK)
{
stringFileName=saveFileDialog.FileName;
}
}
privatevoidExitToolsStripMenuItem_Click(objectsender,EventArgse)
{
this.Close();
}
privatevoidCutToolStripMenuItem_Click(objectsender,EventArgse)
{
}
privatevoidCopyToolStripMenuItem_Click(objectsender,EventArgse)
{
}
privatevoidPasteToolStripMenuItem_Click(objectsender,EventArgse)
{
}
privatevoidToolBarToolStripMenuItem_Click(objectsender,EventArgse)
{
toolStrip.Visible=toolBarToolStripMenuItem.Checked;
}
privatevoidStatusBarToolStripMenuItem_Click(objectsender,EventArgse)
{
statusStrip.Visible=statusBarToolStripMenuItem.Checked;
}
privatevoidCascadeToolStripMenuItem_Click(objectsender,EventArgse)
{
LayoutMdi(MdiLayout.Cascade);
}
privatevoidTileVerticalToolStripMenuItem_Click(objectsender,EventArgse)
{
LayoutMdi(MdiLayout.TileVertical);
}
privatevoidTileHorizontalToolStripMenuItem_Click(objectsender,EventArgse)
{
LayoutMdi(MdiLayout.TileHorizontal);
}
privatevoidArrangeIconsToolStripMenuItem_Click(objectsender,EventArgse)
{
LayoutMdi(MdiLayout.ArrangeIcons);
}
privatevoidCloseAllToolStripMenuItem_Click(objectsender,EventArgse)
{
foreach(FormchildForminMdiChildren)
{
childForm.Close();
}
}
privatevoidaboutToolStripMenuItem_Click(objectsender,EventArgse)
{
AboutBoxdlg=newAboutBox();
dlg.ShowDialog(this);
}
privateColor_ViewBackColor=Color.White;//阅读的背景色字段及默认值
privateColor_ViewForeColor=Color.Black;//阅读的前景色字段及默认值
privateFont_ViewFont=SystemFonts.DefaultFont;//阅读的字体字段及默认值
//"选项"菜单处理函数,打开SettingDlg,并将新参数更新到已打开的子窗体
privatevoidoptionsToolStripMenuItem_Click(objectsender,EventArgse)
{
SettingDlgdlg=newSettingDlg(this._ViewBackColor,//用当前阅读参数创建SettingDlg对象dlg
this._ViewForeColor,
this._ViewFont);
if(dlg.ShowDialog(this)==DialogResult.OK)//显示参数设置对话框,并等待用户设置
{
this._ViewBackColor=dlg.GetBackColor();//获取用户最新的阅读参数
this._ViewFont=dlg.GetFont();
this._ViewForeColor=dlg.GetForeColor();
foreach(Formfrminthis.MdiChildren)//遍历所有子窗体
{
FrmReaderfrmRd=frmasFrmReader;//如果子窗体是FrmReader类型
if(frmRd!
=null)//则更新最新参数到子窗体
{
frmRd.SetViewSettings(this._ViewBackColor,this._ViewForeColor,this._ViewFont);
}
}
}
}
}
(2)
源代码:
namespaceMultiTextReader
{
partialclassAboutBox:
Form
{
publicAboutBox()
{
InitializeComponent();
this.Text=String.Format("关于{0}{0}",AssemblyTitle);
this.labelProductName.Text=AssemblyProduct;
this.labelVersion.Text=String.Format("版本{0}{0}",AssemblyVersion);
this.labelCopyright.Text=AssemblyCopyright;
this.labelCompanyName.Text=AssemblyCompany;
this.textBoxDescription.Text=AssemblyDescription;
}
}
}
四、实验总结
通过此次实验,我学会了在VisualStudio2010中创建多文档应用程序;也基本掌握了在多文档窗体添加子窗体到父窗体的具体方法;对于操作、排列子窗体进行了相应的练习。
实验比较顺利,并没有出现什么技术问题。