C# 设计一个Windows应用程序——记事本

记事本

要求

通过本章的学习,可以进一步掌握MenuStrip(菜单)、ToolStrip(工具栏)、RichTextBox(高级文本框)和StatusStrip(状态栏控件)等控件的使用,以及如何使用CommonDialog(公共对话框)实现对文本的存取、格式设置等操作。

记事本简介

记事本是一种常用的软件,在微软的Windows中,自带了一个记事本软件,Windows 10下的记事本软件如图示
C# 设计一个Windows应用程序——记事本

实现了Windows自带的记事本的部分功能外,并且还可以任意更改字体的字体类型、大小和颜色,并在状态栏中显示时间。为了方便用户的操作,还在程序的窗体上放置了一个工具栏。

功能

本章介绍的记事本程序具有文件的新建、打开、保存功能;文字的复制、粘贴、删除功能;字体类型、格式的设置功能;查看日期时间等功能,并且用户可以根据需要显示或者隐藏工具栏和状态栏

记事本界面设计

  1. 创建项目C# 设计一个Windows应用程序——记事本
    2.出现界面

C# 设计一个Windows应用程序——记事本
3.修改属性
C# 设计一个Windows应用程序——记事本

1.创建好项目后选择menustrip工具,添加菜单
C# 设计一个Windows应用程序——记事本

界面设计

1.创建好项目后选择menustrip工具,添加菜单
C# 设计一个Windows应用程序——记事本
2.添加子选项,并编辑其属性
C# 设计一个Windows应用程序——记事本

插入标准项和必要控件

加入RichTextBox、StatusStrip、OpenFileDialog、SaveFileDialog、FontDialog、Timer控件
C# 设计一个Windows应用程序——记事本

菜单代码

文件

// private void tsmiNew_Click(object sender, EventArgs e)
{
    // 判断当前文件是否从磁盘打开,或者新建时文档不为空,并且文件未被保存
    if (b == true || rtxtNotepad.Text.Trim() != "")
    {
        // 若文件未保存
        if (s == false)
        {
            string result;
            result = MessageBox.Show("文件尚未保存,是否保存?", 
                "保存文件", MessageBoxButtons.YesNoCancel).ToString();
            switch (result)
            {
                case "Yes":
                    // 若文件是从磁盘打开的
                    if (b == true)
                    {
                        // 按文件打开的路径保存文件
                        rtxtNotepad.SaveFile(odlgNotepad.FileName);
                    }
                    // 若文件不是从磁盘打开的
                    else if (sdlgNotepad.ShowDialog() == DialogResult.OK)
                    {
                        rtxtNotepad.SaveFile(sdlgNotepad.FileName);
                    }
                    s = true;
                    rtxtNotepad.Text = "";
                    break;
                case "No":
                    b = false;
                    rtxtNotepad.Text = "";
                    break;
            }
        }
    }
}

界面设计

添加windows窗体,命名为frmAbout,加入Label、Button、LinkLabel控件
C# 设计一个Windows应用程序——记事本

工具栏代码

// private void tlsNotepad_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
    int n;
    // 变量n用来接收按下按钮的索引号从0开始
    n = tlsNotepad.Items.IndexOf(e.ClickedItem);
    switch (n)
    { 
        case 0:
            新建NToolStripButton_Click (sender, e);
            break;
        case 1:
            打开OToolStripButton_Click (sender, e);
            break;
        case 2:
            保存SToolStripButton_Click (sender, e);
            break;
        /*case 3:
            tsmiCopy_Click(sender, e);
            break;*/ // 我们不用case3

        case 4:
            剪切UToolStripButton_Click (sender, e);
            break;
        case 5:
            粘贴PToolStripButton_Click (sender, e);
            break;
        /*case 6:
            tsmiPaste_Click(sender, e);
            break; */ // 我们不用case6
        case 7:
            tsmiAbout_Click (sender, e);
            break;
       
    }
}

心得体会

记事本跟着word做的,里面的讲解非常的细致,学到了很多的内容
控件,界面设计等等,慢慢来。

上一篇:用C#语言实现记事本


下一篇:给定 ComboBox 的默认值