C#综合性实验 - 文本编辑器

本次综合性实验深入探讨了C#编程,通过设计一个文本编辑器,作者运用了基本知识并学习了控件如richTextBox和comboBox。实验中,作者实现了查找和替换功能,增强了程序的人性化设计,弥补了课堂学习的不足,为未来编程研究奠定了基础。
摘要由CSDN通过智能技术生成

文本编辑器

实验要求

  至少完成以下功能:
    文件操作: 新建,打开,保存,退出; //支持rtf文件
    编辑操作: 复制,剪切,粘贴,全选;
    查找与替换: 设计查找(替换)窗口,支持查找(替换)操作 。
    格式操作: 字体,颜色等.
    界面设计应考虑美观,操作简便等问题,应有工具栏,右键菜单等;

设计思路

   定义一个父窗口类Form1,定义一个文本编辑窗口类Editor,在Form1上添加各种功能操作按钮,如新建、打开、查找等,每次新建或打开,就新增一个Editor实例,并将其父窗口指定为Form1,各种按钮的操作对象均为Form1中的当前活动子窗口(Editor)this.ActiveMdiChild,符合一般用户的操作习惯;
文本编辑窗口类Editor只有两个控件,文本框richtextbox和右键菜单contextMenuStrip,一个属性Boolean类属性isEdited,用来表示当前文本是否被编辑过;
程序退出时,用foreach语句逐个检测子窗口的isEdited属性,若为true,则执行保存操作,否则直接关闭;保存时,若该属性为false,则不用进行任何操作;
查找和替换:定义查找窗口类FindForm,利用richtextbox的Find函数,找到第一个匹配的字符串,记录此时位置,从该处开始继续用Find函数,查找下一个。替换操作大同小异,结合while语句,查找出全部匹配的字符串,并替换。

核心代码:

Form1.cs

private void Form1_Load(object sender, EventArgs e)
        {
            新建ToolStripMenuItem.PerformClick();
            activeForm = ((Editor)(this.ActiveMdiChild));
            this.Text = activeForm.Text;
            foreach (FontFamily font in FontFamily.Families)
   //加载系统安装字体名称到ComboBox控件 
            {
                this.ComboFontType.Items.Add(font.Name);
            }
        }

  private void 新建ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Editor frm = new Editor();
            formCount++;
            newTexterCount++;
            frm.Tag = true;
            frm.MdiParent = this;
            frm.Text = "新建文本文档" + newTexterCount.ToString();
      frm.Show();
        }


  private void 保存ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if ((Boolean)this.ActiveMdiChild.Tag && ((Editor)this.ActiveMdiChild).isEdited)
  //如果是新建的文本且编辑过,转向另存为
                另存为ToolStripMenuItem
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值