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("取消颜色设置");
            }
        }
    }
}
效果演示
相关推荐
Escalating_xu3 分钟前
【C 语言】深入理解指针(2):数组名、数组传参、二级指针与指针数组
java·c语言·开发语言
郝学胜-神的一滴5 分钟前
游戏引擎原理与实践 01:聊聊游戏引擎的前世今生
开发语言·c++·游戏引擎·产品运营·软件工程·产品经理·untiy
PascalXie12 分钟前
水下机器人除了声纳,还能用什么感知方案?
计算机视觉·机器人
硅谷秋水27 分钟前
RoboEdit:将人类操作视频转化为可扩展的机器人经验
人工智能·机器学习·计算机视觉·机器人
bkspiderx38 分钟前
Qt 的消息机制:事件驱动与信号槽的底层逻辑
开发语言·qt·信号槽·事件驱动·qt 的消息机制
晴天的雨.99240 分钟前
【C++算法】三数之和
开发语言·c++·算法
AC赳赳老秦1 小时前
公开 CSV 数据集批量处理实战:用 OpenClaw 高效完成下载、清洗与标准化分析样本生成
java·开发语言·汇编·c++·python·deepseek·openclaw
程序员JerrySUN1 小时前
Jetson边缘嵌入式实战课程第四讲:用 Yocto 定制 Jetson 系统,从开发走向产品化
arm开发·人工智能·安全·计算机视觉·目标跟踪
j7~1 小时前
【Python】(篇七)《使用Python库》 -- 详解
开发语言·后端·python·编程学习·python标准库·python第三方库·python拓展
心中有你02141 小时前
C语言实现文件异或加密与RLE压缩算法
c语言·开发语言