一、题目:多文本编辑器的设计
二、设计要求:
用C# 的可视化环境通过制作一个 RichTextBox 这样一个文本编辑器,熟悉在可视化环境下编程,并且学会使用里面提供的一些组装好的一些工具,
三、设计思路及代码:
第一是:新建一个RichTextBox ,然后我最先想到的就是遨游里的选项卡非常好用而且人性化,怎么制作这样一个选项卡,怎么把 RichTextBox 放到里面,我就了解了 TabControl 工具并且最先想到的是用 RichTextBox 数组,每个选项卡分配一个 RichTextBox[i] ,但是当关闭选项卡时就遇到问题了,不知道选项卡最后对应的是哪一个 RichTextBox[i] ,然后就想出了把RichTextBox封装在选项卡里的想法,为了记录文件路径和文件是不是已经保存的状态,我顺便封装两个 Label 进去,因为要用到他们的 text() 属性记录这些信息,我们只对当前选项卡操作,首先用foreach语句获取选项卡里的控件类型,再进行相应操作。这样最后解决了窗口关闭问题,以及新建窗口个数有限性的问题,我的这个程序理论上是可以新建无数多个窗口的,就看你内存如何了。代码如下:(文件打开的功能也差不多)
private void 新建ToolStripMenuItem_Click(object sender, EventArgs e)
{
string str = "NewText" + (NF++);//获取选项卡名字
tabControl1.TabPages.Add(str);//增加选项卡
tabControl1.SelectTab(m++);//当前页转到下一页
tabControl1.TabStop = true;//允许tab键顺序
RichTextBox r= new RichTextBox();
r.ContextMenuStrip = contextMenuStrip2;//增加右键菜单
r.TextChanged += new EventHandler(Form1_TextChanged);//文本内容发生改变时执行的函数
r.Dock = System.Windows.Forms.DockStyle.Fill;
r.Location = new System.Drawing.Point(0, 0);
Label l1 = new Label();
l1.Text = str;//保存路径
Label l2 = new Label();
l2.Text = "新建"; v++;//保存文件是不是保存的状态
l1.Dock = System.Windows.Forms.DockStyle.Bottom;
l2.Dock = System.Windows.Forms.DockStyle.Bottom;
tabControl1.SelectedTab.Controls.Add(r);
tabControl1.SelectedTab.Controls.Add(l1);
tabControl1.SelectedTab.Controls.Add(l2);//封装进去,注意句柄丢了,这样做到与选项卡一一对应。
}
第二是:当 RichTextBox 的文本改变时,要改变文本是否保存的状态,这要给 RichTextBox 添加一个 TextChanged 处理函数Form1_TextChanged(object sender, EventArgs e) :
void Form1_TextChanged(object sender, EventArgs e) toolStripButton3.Enabled = true; { 保存SToolStripMenuItem.Enabled = true;
} //获得控件 r 、l1 、l2 (第十设计思路)
if (l2.Text == "已保存" || l2.Text == "打开") else if (l2.Text == "打开1")
{ {
l2.Text = "未保存"; v++; l2.Text = "打开";
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新资格考试认证C多文本编辑器考试报告(2)全文阅读和word下载服务。
相关推荐: