C#记事本项目开发,一个可以实现批量操作的记事本!【附源码】

简介: C#记事本项目开发,一个可以实现批量操作的记事本!【附源码】
基于C#开发的一款记事本软件,包括记事本文件的新建、打开、读取、保存、文本的加粗、倾斜、字体、字号,记事本的批量操作等。

@TOC

Hello!大灰狼又来和大家分享值得学习的C#开发项目了,今天和大家分享一个大家应该都比较熟悉的开发项目---“记事本”。

很多小伙伴可能也都使用过记事本来记录一些自己比较重要或者容易忘记的事情,但是你知道它是怎么开发出来的嘛?

同样和之前大灰狼和大家分享的计算器项目一样,记事本项目也可以使用很多不同的语言开发,今天大灰狼就先和大家介绍一下使用C#开发记事本的思路和流程。

同时对于Java和C#在GUI编程上相同和不同之处,小伙伴可以看我之前的这篇文章“Java交互界面实现计算器开发设计【附函数源码】”,

好了,废话不多说,直接上教程。

C#的记事本开发需要我们定义两个窗体,也就是一个承载所有记事本的父窗体,一个具有记事本基本功能的子窗体。

.

记事本子窗体

所以我们首先来聊一下具有记事本基本功能的子窗体的开发。

在C#的窗体应用中,我们可以直接对界面进行控件布局,不需要使用代码定义控件,在这一点上C#的窗体应用开发是很不错的。

那么在记事本应用中,我们应该添加在窗体中的控件应该有,文件的新建、打开、保存,以及字体的样式、字号、是否加粗倾斜这些基本的记事本控件。同时当然还需要记事本的编辑文本框,方便我们对内容的修改和输入。

了解了这些基本的控件之后,就是我们对每一个控件所绑定的函数的书写了,

获取系统字体函数

首先我们是在设置字体时的需要获取到系统的所有字体样式,

通过以下函数实现:

//获取系统字体
        private void FormSon_Load(object sender, EventArgs e)
        {
            //窗体加载时要加载的字体
            InstalledFontCollection MyFontStaly = new InstalledFontCollection();
            //获取InstalledFontCollection对象的数据
            FontFamily[] ff = MyFontStaly.Families;
            //定义一个新的ArrayList数组列表
            ArrayList list = new ArrayList();
            //获取到字体数组的列表的长度
            int count = ff.Length;
            for (int i = 0; i < count; i++)
            {
                //获取到字体数组的字体的名字
                string FontName = ff[i].Name;
                //将字体保存在字体控件中
                toolStripComboBox_fonyStaly.Items.Add(FontName);
            }
        }

字体空间函数

在获取到系统可以设置的所有字体样式之后,就是我们在点击字体时,字体变化的控件了,在这里我们需要在改变字体索引的控件中进行设置,

函数如下:

  //改变字体的索引
    private void toolStripComboBox_fonyStaly_SelectedIndexChanged(object sender, EventArgs e)
    {
        //接收当前字体框的文本
        string fontname = toolStripComboBox_fonyStaly.Text;
        //接收当前字号框的数值
        float fontsize = float.Parse(toolStripComboBox_fontSize.Text);
        textBox_Text.Font = new Font(fontname, fontsize);
    }

字号空间函数

设置完成字体控件的属性之后,就是字号属性了,与设置字体控件的思路相似,我们同样需要先获取到改变字号的索引,函数如下:

   //改变字号的索引
    private void toolStripComboBox_fontSize_SelectedIndexChanged(object sender, EventArgs e)
    {
        //接收当前字体框的文本
        string fontname = toolStripComboBox_fonyStaly.Text;
        //接收当前字号框的数值
        float fontsize = float.Parse(toolStripComboBox_fontSize.Text);
        textBox_Text.Font = new Font(fontname, fontsize);
    }

在字号发生变化时,我们需要将文本框中的内容的字号进行改变,这个时候就需要我们在相应的函数中进行设置:

//当字号发生改变时
private void toolStripComboBox_fontSize_TextChanged(object sender, EventArgs e)
{
    //接收当前字体框的文本
    string fontname = toolStripComboBox_fonyStaly.Text;
    //接收当前字号框的数值
    float fontsize = float.Parse(toolStripComboBox_fontSize.Text);
    textBox_Text.Font = new Font(fontname, fontsize);
}

加粗控件函数

  //加粗按钮
    private void toolStripButton_over_Click(object sender, EventArgs e)
    {
        //点击加粗按钮,字体加粗,加粗是点击按钮取消加粗

        //如果目前处于未加粗状态,点击进行加粗
        if (textBox_Text.Font.Bold == false)
        {
            textBox_Text.Font = new Font(textBox_Text.Font, FontStyle.Bold);

        }
        //如果当前处于加粗状态,点击取消加粗
        else
        {
            textBox_Text.Font = new Font(textBox_Text.Font, FontStyle.Regular);

        }
        
    }

倾斜控件函数

//倾斜按钮
private void toolStripButton_slanr_Click(object sender, EventArgs e)
{
    if (textBox_Text.Font.Italic == false)
    {
        textBox_Text.Font = new Font(textBox_Text.Font, FontStyle.Italic);
    }
    else
    {
        textBox_Text.Font = new Font(textBox_Text.Font, FontStyle.Regular);
    }
}

保存控件函数

在做保存控件的时候,我们需要考虑到一点,就是我们所保存的文件信息,是否是新建的文本框,如我们是新建的记事本,则在保存时则需要选择保存路径和文件名,如果我们是对原有的文件进行二次编辑,则我们在点击保存按钮时只需要进行保存即可,无需重新选择文件的保存路径。

函数代码如下:

//保存按钮
private void toolStripButton_save_Click(object sender, EventArgs e)
{

    
    //创建一个筛选器
    saveFileDialog1.Filter = ("文本文档(*,txt)|*.txt");
    // 判断如果当前文本框不为空,则进行保存
    if (textBox_Text.Text.Trim() != "")
    {
        //如果记事本文件是新的,则选择路径保存
        if (this.Text == "记事本")
        {
            //保存文件到用户的指定目录下
            //判断用户是保存还是取消
            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                //获取用户选择的文件及路径
                string path = saveFileDialog1.FileName;
                //保存文件到指定路径
                StreamWriter sw = new StreamWriter(path, false);
                sw.WriteLine(textBox_Text.Text.Trim());
                //在窗体上方显示路径
                this.Text = path;
                //清空缓存
                sw.Flush();
                sw.Close();
            }
        }
        //如果是已经打开的文件,则直接进行保存
        else
        {
            //保存文件到用户的指定目录下                  
            //获取用户选择的文件及路径
            string path = this.Text;
            //保存文件到指定路径
            StreamWriter sw = new StreamWriter(path, false);
            sw.WriteLine(textBox_Text.Text.Trim());
            sw.Flush();
            sw.Close();
            
        }
        
        
    }
    //如果为空,则进行消息框提示
    else
    {
        MessageBox.Show("当前文本框为空!\n不可进行保存!", "警告");
    }
}

打开文件控件函数:

在进行文件的打开操作时,我们需要对所打开的文件进行筛选,只要求打开txt格式的文本文件即可。

实现函数如下:

   //打开文件
    private void toolStripButton_open_Click(object sender, EventArgs e)
    {
        //筛选一个打开文件
        openFileDialog1.Filter = ("文本文档(*,txt)|*.txt");
        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            string path = openFileDialog1.FileName;
            StreamReader sr = new StreamReader(path, Encoding.UTF8);
            string text = sr.ReadToEnd();
            //在文本框上方显示路径
            this.Text = path;
            textBox_Text.Text = text;
            sr.Close();
        }
    }

新建文本控件函数

在点击新建文本之后,我们需要将原来编辑的内容进行清空并且重新建立编辑。

函数如下:

//新建文本
private void toolStripButton1_Click(object sender, EventArgs e)
{
    this.Text = "记事本";
    textBox_Text.Text = "";
    toolStripTextBox1.Text = "";
}

窗体关闭控件函数

在我们的文本被修改之后,如果用户点击关闭按钮,这个时候就需要对用户进行提示,如果用户选择关闭,则进行记事本文本框的关闭操作,并且不会进行保存,如果用户点击了否,则重新回到编辑页面进行编辑。

函数如下:

  ///窗体关闭时
    private void FormSon_FormClosing(object sender, FormClosingEventArgs e)
    {
        //如果文件已经被修改,则进行提示
        if (toolStripTextBox1.Text == "文本已修改")
        {
            DialogResult dr =  MessageBox.Show("文本已经修改!是否继续退出?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            
            //如果用户选择是,则退出
            if (dr == DialogResult.Yes)
            {
                this.Dispose();
            }
            //如果用户选择否,则返回页面
            else 
            {
                e.Cancel = true;
            }

        }
    }

在以上这些函数完成之后,我们的记事本文本编辑窗口就完成了,看一下效果:

在这里插入图片描述

.

主控页面父窗体

接下来就是承载记事本编辑窗口的父窗体了。

在父窗体中需要包括的控件有记事本的新建、关闭、全部关闭、退出等。

新建记事本

设置新建记事本控件属性的时候,我们只需要调用我们刚刚完成的记事本子窗体即可。

函数如下:

//新建
private void ToolStripMenuItem_newfile_Click(object sender, EventArgs e)
{
    //定义一个变量接收子窗体
    FormSon son = new FormSon();
    //定义子窗体的父窗体
    son.MdiParent = this;
    //显示子窗体
    son.Show();
}

关闭窗体

关闭窗体时,我们所关闭的是当前处于最前方的活跃的窗体。

函数如下:

//关闭窗体
private void ToolStripMenuItem_closefile_Click(object sender, EventArgs e)
{
    //接收当前窗体
    Form form = this.ActiveMdiChild;
    //关闭当前窗体
    form.Close();
}

关闭全部窗体

点击关闭全部窗体时,我们会将已经打开的所有记事本窗体全部关闭。

函数如下:

//关闭全部窗体
private void ToolStripMenuItem_closeall_Click(object sender, EventArgs e)
{
    //循环遍历当前已经打开的所有窗体的集合
    foreach (Form form in this.MdiChildren)
    {
        Form frm = this.ActiveMdiChild;
        frm.Close();
    }
}

退出控件

最后一个需要设置的是退出,点击时会将记事本窗体整体关闭,因此,我们只需要将当前打开的窗体关闭即可。

函数如下:

//退出
private void ToolStripMenuItem_quit_Click(object sender, EventArgs e)
{
    this.Close();
}

设置完父窗体之后,记事本的整体开发就完成了,现在看一下整体效果。

在这里插入图片描述

==觉得不错记得点赞关注大灰狼哟!==

==可以点击此处下载“开发源码”,

==大灰狼陪你一起进步!==

在这里插入图片描述

目录
相关文章
|
12天前
|
开发框架 前端开发 JavaScript
C# 6.0+JavaScript云LIS系统源码  云LIS实验室信息管理新型解决方案
云LIS是为区域医疗提供临床实验室信息服务的计算机应用程序,可协助区域内所有临床实验室相互协调并完成日常检验工作,对区域内的检验数据进行集中管理和共享,通过对质量控制的管理,最终实现区域内检验结果互认。其目标是以医疗服务机构为主体,以医疗资源和检验信息共享为目标,集成共性技术及医疗服务关键技术,建立区域协同检验,最大化利用有限的医疗卫生资源。
23 1
|
23天前
|
数据采集 安全 JavaScript
C#医院手术麻醉信息管理系统源码 对接院内HIS、LIS、PACS
手麻系统的功能涵盖了麻醉临床业务管理、麻醉运营业务管理以及手术进程管理等,实现了将多种麻醉病历文书与医院HIS系统的有效关联,让手术室人员、设备资源和信息资源高度共享;实现了手术安排、各种统计报表等科室管理和科研工作的需求,可借其收集临床数据、进行整合分析,为围术期临床信息、管理、科研提供整体解决方案;该系统的运行,为医护人员提供了流程化、信息化、自动化、智能化的临床业务综合管理。
32 5
|
26天前
|
前端开发 Java C#
java/C#语言开发的医疗信息系统11套源码
java/C#语言开发的医疗信息系统11套源码
19 1
|
1月前
|
安全 测试技术 C#
C#.手术麻醉系统源码 手麻系统如何与医院信息系统进行集成?
C#手术麻醉系统源码集成到医院信息系统涉及标准数据接口、患者信息同步、医嘱报告共享、实时监测数据传输及安全权限管理。通过这些步骤,确保信息的准确、及时和安全流动,提升医疗效率和服务质量。系统集成后需测试优化,以保证稳定性。图片展示了集成的不同方面。
|
2月前
|
XML 安全 JavaScript
B/S基于C#手术麻醉信息系统源码 手麻系统源码 有演示
手术室麻醉临床信息系统是应用于医院手术室、麻醉科室的计算机软件系统。该系统针对整个围术期,对病人进行全程跟踪与信息管理,自动集成病人HIS、LIS、RIS、PACS信息,采集监护等设备数据,根据质控要求自动生成电子单据, 系统提供智能手术排班、科室耗材管理、麻醉收费、主任管理、电子处方等业务功能,高度整合各科室应用需求,实现手术麻醉过程的无纸化和医疗流程的规范化,为手术室全面信息化提供了整体解决方案。
19 1
B/S基于C#手术麻醉信息系统源码 手麻系统源码 有演示
|
1月前
|
传感器 数据采集 大数据
C#/BS手麻系统源码 手术麻醉管理系统源码 商业项目源码
手麻系统从麻醉医生实际工作环境和流程需求方面设计,与HIS,LIS,PACS,EMR无缝连接,方便查看患者的信息;实现术前、术中、术后手术麻醉信息全记录;减少麻醉医师在手术中填写麻醉记录单时间,证手术麻醉相关信息的准确性,有效降低医护人员的术中书写医疗文书的压力,使得麻醉医生在术中能够更加集中精力在病人的麻醉操作上,提升手术质量
19 2
|
8天前
|
存储 数据采集 安全
C#医院手术室麻醉信息管理系统源码 自动生成麻醉的各种医疗文书(手术风险评估表、手术安全核查表)
医院手术麻醉信息系统有着完善的临床业务功能,能够涵盖整个围术期的工作,能够采集、汇总、存储、处理、展现所有的临床诊疗资料。通过该系统的实施,能够规范麻醉科的工作流程,实现麻醉手术过程的信息数字化,自动生成麻醉的各种医疗文书,完成共享HIS、LIS、PACS和EMR等手术患者信息,从而提高麻醉、手术工作的管理水平。
20 3
|
11天前
|
存储 开发框架 前端开发
C#开发的全套成熟的LIS系统源码JavaScript+SQLserver 2012区域云LIS系统源码
医院云LIS系统是一套成熟的实验室信息管理系统,目前已在多家三级级医院应用,并不断更新。云LIS系统是为病人为中心、以业务处理为基础、以提高检验科室管理水平和工作效率为目标,将医学检验、科室管理和财务统计等检验科室/实验室所有工作进行整合,全面改善检验科室/实验室的工作现状。
15 0
|
16天前
|
存储 安全 Oracle
C#检验科lis实验室信息管理系统源码
LIS是全院信息化建设的一个重要组成部分,其主要功能是将检验的实验仪器传出的检验数据经分析后,生成检验报告,通过网络存储在数据库中,使医生能够方便、及时的看到患者的检验结果,LIS已经成为现代化医院管理中必不可少的一部分。有助于提高实验室的整体管理水平,减少漏洞,提高检验质量。
20 1
|
20天前
|
开发框架 前端开发 JavaScript
采用C#.Net +JavaScript 开发的云LIS系统源码 二级医院应用案例有演示
技术架构:Asp.NET CORE 3.1 MVC + SQLserver + Redis等 开发语言:C# 6.0、JavaScript 前端框架:JQuery、EasyUI、Bootstrap 后端框架:MVC、SQLSugar等 数 据 库:SQLserver 2012