c# txt文档的实时显示,用来查看发送接收指令

news2025/4/21 5:55:12

在这里插入图片描述
通讯历史按钮

        private void uiButton1_Click(object sender, EventArgs e)
        {
            try
            {
                logf = new logF();
                logf.Show();
            }
            catch (Exception)
            {

                throw;
            }     
        }

主页面关闭函数(点击保存就为true true就不删除)

        private void page1_FormClosed(object sender, FormClosedEventArgs e)
        {
            // 关闭应用时删除txt文件 为true就不删除
            if (logF.savelog== false)
            {
                if (File.Exists(logF.filePath))
                {
                    File.Delete(logF.filePath);
                }
            }

            Application.Exit();
        }

在这里插入图片描述

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Sunny.UI;

namespace WindowsFormsApp1
{
    public partial class logF : UIForm
    {
        public logF()
        {
            InitializeComponent();
            Application.EnableVisualStyles();
            //Application.Run(new MainForm());
            MainForm();
        }
        private FileSystemWatcher fileWatcher;
        public static string filePath = @"C:\log\run.txt";
        public static bool savelog=false;
        public void MainForm()
        {
             初始化RichTextBox
            //richTextBox1 = new RichTextBox();
            //richTextBox1.Dock = DockStyle.Fill;
            //this.Controls.Add(richTextBox1);

            // 初始化FileSystemWatcher
            fileWatcher = new FileSystemWatcher();
            fileWatcher.Path = Path.GetDirectoryName(filePath);
            fileWatcher.Filter = Path.GetFileName(filePath);
            fileWatcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.Size;

            // 绑定事件处理程序
            fileWatcher.Changed += OnFileChanged;
            fileWatcher.EnableRaisingEvents = true;

            // 初始加载文件内容
            LoadFileContent();
        }

        private void LoadFileContent()
        {
            try
            {
                // 读取文件内容并显示在RichTextBox中
                using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
                using (StreamReader reader = new StreamReader(fs))
                {
                    richTextBox1.Text = reader.ReadToEnd();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error reading file: " + ex.Message);
            }
        }

        private void OnFileChanged(object sender, FileSystemEventArgs e)
        {
            在UI线程上更新RichTextBox内容
            //this.Invoke((MethodInvoker)delegate
            //{
            //    LoadFileContent();
            //});
            if (this.IsHandleCreated) // 确保句柄已存在
            {
                this.BeginInvoke((MethodInvoker)delegate
                {
                    LoadFileContent();
                });
            }
        }
        private void logF_Load(object sender, EventArgs e)
        {

             读取txt文件内容并显示在文本框中
            //if (File.Exists(filePath))
            //{
            //    string content = File.ReadAllText(filePath);
            //    richTextBox1.Text = content;
            //}
            //else
            //{
            //    MessageBox.Show("文件不存在!");
            //}

        }

        private void uiButton7_Click(object sender, EventArgs e)
        {
            savelog = true;
        }

        private void uiButton1_Click(object sender, EventArgs e)
        {
            System.Diagnostics.Process.Start(@"C:\log");
        }
    }
}

log.cs
在这里插入图片描述

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WindowsFormsApp1
{
    internal class log
    {
        public static void SaveLog(string log, string filename = @"C:\log\run.txt")
        {
            string pathA = filename.Substring(0, filename.LastIndexOf("\\"));
            if (!Directory.Exists(pathA))
            {
                DirectoryInfo directoryInfo = new DirectoryInfo(pathA);
                directoryInfo.Create();
            }
            string filepathA = filename;
            try
            {
                String time = DateTime.Now.ToString("[yyyy-MM-dd hh:mm:ss]");
                time += log;
                if (!File.Exists(filepathA))
                {
                    using (StreamWriter sw = File.CreateText(filepathA))
                    {
                        sw.WriteLine(time);
                        sw.Close();
                    }
                }
                else
                {
                    {
                        using (StreamWriter sw = File.AppendText(filepathA))
                        {
                            sw.WriteLine(time);
                            sw.Close();
                        }
                    }

                }
            }
            catch
            {
                // MessageBox.Show("log异常" + ee.ToString());
            }
        }

    }
}

log.SaveLog("要保存的内容");

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2314687.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Excel 数据转换为SQL语句

文章目录 一、制作公式二、示例图 一、制作公式 1、找一列空白的,选中一个单元格,输入"",在双引号中写入INSERT语句脚本,然后回车。 // 数字代表行数 “INSERT INTO PayList (product, rmb) VALUES (”&A10&“…

SpringMVC (一)基础

目录 SpringMVC 一 简单使用 1 新建模块选择指定参数 2 创建实现类 3 将项目启动 4 运行结果:在浏览器当中响应执行 二 RequestMapping 三 请求限定 SpringMVC SpringMVC是Spring的web模块,用来开发Web应用,SpringMVC应用最终作为B/…

windows第十二章 MFC控件常用消息

文章目录 控件反射消息机制文本框控件EN_CHANGE消息EN_UPDATE消息EN_SETFOCUS消息EN_KILLFOCUS消息EN_MAXTEXT消息EN_ERRSPACE消息EN_HSCROLL消息 按钮控件BN_CLICKED消息BN_DOUBLECLICKED消息BN_SETFOCUS消息BN_KILLFOCUS消息 单选按钮BN_CLICKED 消息 复选框BN_CLICKEDBN_DOU…

基于C语言的简单HTTP Web服务器实现

1. 概述 本案例使用C语言实现了一个简单的HTTP服务器,能够处理客户端的GET请求,并返回静态文件(如HTML、图片等)。在此案例中案例,我们主要使用的知识点有: Socket编程:基于TCP协议的Socket通信…

ZYNQ初识13(zynq_7020)hdmi和串口板载功能的验证

(1)另:首先需要确认供电模块,电压转换模块没有问题,测量后上电防止出现短路。通过vivado下载bit流文件检测JTAG下载口是否正常,如可正常检测,才可进行下一步验证。 (2)以…

ollama下载的DeepSeek的模型(Model)文件在哪里?(C盘下)

目录 一、下载大模型(DeepSeek) 2. 安装 Ollama 3. 检查安装是否成功 二、拉取大模型(DeepSeek) 1. 打开命令行 2. 下载模型 3. 测试下载 4. 等待下载完成 三.模型存放路径 这个位置!! 在人工智能…

docker的anythingllm和open-webui压缩包分享(国内镜像拉取,百度云压缩包分享)

文章目录 前言第一部分:镜像获取🚀 方式一:切换国内下载镜像✅1. 下载anythingllm✅ 2. 下载open-webui 🚀方式二:下载我分享的百度云✅ anythingllm压缩包百度云链接❎ open-webui压缩包 第二部分:下载之后…

父组件中循环生成多个子组件时,有且只有最后一个子组件的watch对象生效问题及解决办法

提示:父组件中循环生成多个子组件时,有且只有最后一个子组件的watch对象生效问题及解决办法 文章目录 [TOC](文章目录) 前言一、问题二、解决方法——使用function函数代替箭头函数()>{}总结 前言 ‌‌‌‌‌问题:子组件用that解决watch无…

求递增子序列LIS的两种方法

文章目录 前言一、普通动态规划(DP)求解LIS1.DP思路2.DP的状态定义与转移方程3.DP的时间与空间复杂度4.DP代码实现5.DP的图文示例 二、贪心 二分查找求解LIS1.思路分析2.贪心 二分的时间与空间复杂度 三. 模板题讲解1.洛谷B3637 最长上升子序列1.dp写法…

【Linux篇】进程状态(僵尸进程,孤儿进程),优先级与调度机制

📌 个人主页: 孙同学_ 🔧 文章专栏:Liunx 💡 关注我,分享经验,助你少走弯路! 文章目录 1. 前文铺垫理解内核链表 2. 进程状态2.1 进程状态查看2.2 僵尸进程2.3 僵尸进程危害2.4 孤儿…

AI应用加速落地丨MaxKB正在被政府、公共事业、教育和医疗行业用户广泛采纳

2025年2月至3月上旬,伴随着各个行业接入并使用DeepSeek,MaxKB开源知识库问答系统正在被越来越多的行业用户所采纳,是人工智能行业落地的强应用。目前,MaxKB在政府、公共事业、教育和医疗四大行业已经拥有了众多典型案例&#xff0…

2024年第十五届蓝桥杯软件C/C++大学A组——五子棋对弈

蓝桥杯原题: 题目描述: “在五子棋的对弈中,友谊的小船说翻就翻? ” 不!对小蓝和小桥来说,五子棋不仅是棋盘上的较量,更是心与心之间的沟通。这两位挚友秉承着 “ 友谊第一,比赛第二…

复试难度解析,西电先进材料与纳米科技学院学院考研录取情况

01、先进材料与纳米科技学院各个方向 02、24先进材料与纳米科技学院近三年复试分数线对比 PS:材料院24年院线学硕方向降低10分,专硕上涨15分;材料院在分数线相对于其他211、985院校对比来看,依然分数偏低,推荐大家关注…

Deepseek Chatgpt Kimi 推荐的深度学习书单

朋友让推荐一些深度学习的书,让 Deepseek、Chatgpt、Kimi 分别生成了一份书单并做了对比,记录一下以备以后用到。 Chatgpt 推荐的深度学习书 1. chatgpt 推荐的书目截图 1.2 Chatgpt 推荐的深度学习书目文字版 如果你想学习 Deep Learning&#xff0…

高频面试题(含笔试高频算法整理)基本总结回顾25

干货分享,感谢您的阅读! (暂存篇---后续会删除,完整版高频面试题基本总结回顾(含笔试高频算法整理)) 备注:引用请标注出处,同时存在的问题请在相关博客留言&#xff0c…

mac安装mysql之后报错zsh: command not found: mysql !

在Mac上安装MySQL后,如果终端中找不到mysql命令,通常是 因为MySQL的命令行工具(如mysql客户端)没有被正确地添加到你的环境变量中。 检查 MySQL 是否已安装 ps -ef|grep mysql查看到路径在 /usr/local/mysql/bin 查看 .bash_pro…

蓝桥杯备考:set容器用法(lower_bound)---营业额统计

如图所示,这道题的暴力解法就是枚举每天的营业额,让该营业额和前面的天的营业额依次相减取最小值这样的话我们的时间复杂度就是N平方,我们是很有可能超时的 所以我们选择用set容器的二分查找功能 我们每次遍历到一个数的时候,前…

VSCode集成C语言开发环境

下载MinGW https://sourceforge.net/projects/mingw/ 点击download按钮下载exe文件到本地 点击exe文件安装 选择基础包和c编译版 vscode安装部分跳过 安装code runner和c/c插件 **(1) 创建 C 文件** 新建一个测试文件(例如 hello.c)&#xf…

Python----数据可视化(pyecharts二:绘图一:条形图,直方图,折线图,散点图,箱图,饼图,热力图)

1、条形图 from pyecharts.charts import Bar from pyecharts.faker import Faker from pyecharts import options as opts # 绘制柱状图 bar (Bar() # 创建柱状图.add_yaxis("商家A", Faker.values(),colorFaker.rand_color()) # 添加数据.add_yaxis("商家B&…

Training-free Neural Architecture Search for RNNs and Transformers(预览版本)

摘要 神经架构搜索 (NAS) 允许自动创建新的有效神经网络架构,为手动设计复杂架构的繁琐过程提供了替代方案。然而,传统的 NAS 算法速度慢,需要大量的计算能力。最近的研究调查了图像分类架构的无训练 NAS 指标,大大加快了搜索算…