当前位置:文档之家› 简易文本编辑器制作流程

简易文本编辑器制作流程

简易文本编辑器
操作步骤如下。

(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 子窗口,观察效果。

相关主题