简易文本编辑器制作流程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简易文本编辑器
操作步骤如下。
(1)新建一个Windows应用程序项目,并命名为Wordpad。
(2)把窗体Form1命名为MainForm,Text属性设置为“文本编辑器”,IsMdiContainer
属性设置为true。
(3)在MainForm上放置一个MenuStrip,不更改命名。在如图1所示的MDI窗体
菜单中添加主菜单和子菜单并命名和设置Text属性。
(4)设置【格式】主菜单下的【粗体】、【斜体】和【下划线】3个菜单项的Image属性,并加上相应的图标(图标可以自行选择)
(5)在MainForm上放置一个MenuStrip,不更改命名。按如图2所示给工具栏添加3个工具按钮并命名和设置Text属性。分别设置3个工具按钮的Image属性并加上相的图标。(6)新添加一个Windows窗体,命名为frmMDIChild。在其中添加一个RichTextBox控件,把它的Dock属性设置为Fill,使之充满整个窗体。
(7)分别双击【新建】和【退出】子菜单,给它们生成Click事件。
(8)按Ctrl键同时选中【粗体】、【斜体】、【下划线】子菜单,并在事件窗口中双击Click事件,使它们共享同一事件方法。
(9)同时选中【平铺】、【层叠】、【水平并排】、【垂直并排】子菜单,并在事件窗口中双击Click 事件,也使它们共享同一事件方法。
(10)选中前面添加的ToolStrip控件,并生成它的ItemClicked事件。
(11)打开代码窗口,在其中输入如下代码:
private int mdiChildCount=0;//用于记录打开MDI子窗体的次数
private void mitemNew_Click(object sender,EventArgs e)
{
mdiChildCount++;//每打开一个MDI子窗体就加1
frmMDIChild mdiChild=new frmMDIChild();//创建一个新的MDI子窗体
mdiChild.MdiParent=this;
mdiChild.Show();
mdiChild.Text="文档"+mdiChildCount.ToString();//更改窗体标题
}
private void mitemExit_Click(object sender,EventArgs e)
{//退出应用程序
Close();
}
private void mitemBlod_Click(object sender,EventArgs e)
{//直接调用自定义函数formatText
formatText(((ToolStripItem)sender).Text);
}
private void toolStrip1_ItemClicked(object sender,ToolStripItemClickedEventArgs e) {//直接调用自定义函数formatText
formatText(((ToolStripItem)e.ClickedItem).Text);
}
private void mitemArrangeIcons_Click(object sender,EventArgs e)
{//根据菜单项的Text属性来区分它们
switch(((ToolStripItem)sender).Text)
{//重新排列MDI子窗体
case"平铺":
youtMdi(MdiLayout.ArrangeIcons);
break;
case"层叠":
youtMdi(MdiLayout.Cascade);
break;
case"水平并排":
youtMdi(MdiLayout.TileHorizontal);
break;
default:
youtMdi(MdiLayout.TileVertical);
break;
}
}
private void formatText(string itemText)//自定义方法
{//寻找处于激活状态下的MDI子窗体
Form activeChild=this.ActiveMdiChild;
if(activeChild!=null)//如果找到
{//寻找MDI子窗体上的处于活动状态的RichTextBox控件
RichTextBox aBox=(RichTextBox)activeChild.ActiveControl;
if(aBox!=null)//如果找到
{//提取RichTextBox中的选中的文字的字体
Font fontOfSelectedText=aBox.SelectionFont;
FontStyle fs;
switch(itemText)//根据菜单项或工具按钮的Text属性来区分他们
{//更改字体样式,并存放在FontStyle类型变量fs中
case"粗体":
fs=aBox.SelectionFont.Bold?
FontStyle.Regular:FontStyle.Bold;
break;
case"斜体":
fs=aBox.SelectionFont.Italic?
FontStyle.Regular:FontStyle.Italic;
break;
default:
fs=aBox.SelectionFont.Underline?
FontStyle.Regular:FontStyle.Underline;
break;
}
Font FontToApply=new Font(fontOfSelectedText,fs);
aBox.SelectionFont=FontToApply;//更改选中部分的字体样式
}
}
}
运行结果:
运行程序,多次选择菜单【文件】|【新建】,打开多个MDI子窗体,在每个MDI子窗体中输入文字。选择文字中的一部分,并单击工具栏和菜单中的【粗体】、【斜体】和【下划线】这几个按钮,观察选中文字的变化。分别选择【窗口】主菜单下的几个菜单项重新排列MDI 子窗口,观察效果。