WinForm+C#小案例--->写一个记事本程序

需求如下:

  1. 文件菜单中有两个下拉列表:保存、打开
  2. 格式菜单中有一个下拉列表:自动换行点击自动换行---->下拉列表中选项变成取消自动换行,点击取消自动换行变成自动换行,同时附带换行和不换行对应的效果
  3. 样式菜单中有两个下拉列表:字体、颜色,点击字体修改下方输入框中的字体样式,点击颜色修改下方输入框中颜色样式。

效果预览:

创建 Winform 项目并设计界面
编写代码实现切换逻辑
cs 复制代码
using System;
using System.IO;
using System.Text;
using System.Windows.Forms;

namespace 文本
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog()
            {
                Title = "打开文件",
                Filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*",
                InitialDirectory = "C:\\Users\\Administrator\\Desktop"
            };
            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                string directory = openFileDialog.FileName;// 目录
                string fileName = openFileDialog.SafeFileName;// 文件
                try
                {
                    using (StreamReader sr = new StreamReader(directory, Encoding.UTF8))
                    {
                        textBox1.Clear();
                        textBox1.Text = sr.ReadToEnd();
                    }
                }
                catch (Exception)
                {
                    MessageBox.Show("打开文件失败");
                }
            }
        }

        private void 保存ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveFileDialog = new SaveFileDialog()
            {
                Title = "保存文件",
                Filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*",
                InitialDirectory = "E:/桌面",
                DefaultExt = ".txt",
                OverwritePrompt = true,
            };
            if (saveFileDialog.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    string filePath = saveFileDialog.FileName;
                    File.WriteAllText(filePath, textBox1.Text);
                    textBox1.Clear();// 清空输入框中的信息
                    MessageBox.Show("文件保存成功!");
                }
                catch (Exception)
                {
                    MessageBox.Show("保存文件失败");
                }
            }
        }

        private void 自动换行ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            textBox1.WordWrap = true;
            MessageBox.Show("开启自动换行");
        }

        private void 取消ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            textBox1.WordWrap = false;
            MessageBox.Show("关闭自动换行");
        }

        private void 字体ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FontDialog fontDialog = new FontDialog();
            if (fontDialog.ShowDialog() == DialogResult.OK)
            {
                textBox1.Font = fontDialog.Font;
                MessageBox.Show("字体样式设置成功!");
            }
            else
            {
                MessageBox.Show("取消设置字体样式");
            }
        }

        private void 颜色ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ColorDialog colorDialog = new ColorDialog();
            if (colorDialog.ShowDialog() == DialogResult.OK)
            {
                textBox1.ForeColor = colorDialog.Color;
            }
            else
            {
                MessageBox.Show("取消颜色设置");
            }
        }
    }
}
效果演示
相关推荐
咖啡の猫1 天前
Python字典推导式
开发语言·python
leiming61 天前
C++ vector容器
开发语言·c++·算法
竣雄1 天前
计算机视觉:原理、技术与未来展望
人工智能·计算机视觉
SystickInt1 天前
C语言 strcpy和memcpy 异同/区别
c语言·开发语言
CS Beginner1 天前
【C语言】windows下编译mingw版本的glew库
c语言·开发语言·windows
烛阴1 天前
C# 正则表达式(2):Regex 基础语法与常用 API 全解析
前端·正则表达式·c#
FJW0208141 天前
Python_work4
开发语言·python
大学生资源网1 天前
java毕业设计之儿童福利院管理系统的设计与实现(源码+)
java·开发语言·spring boot·mysql·毕业设计·源码·课程设计
JasmineWr1 天前
JVM栈空间的使用和优化
java·开发语言
Poetinthedusk1 天前
C#实现图片统一位深
开发语言·c#