当前位置: 首页 > news >正文

C# 鼠标点击ToolStripStatuslabel 在线修改Text属性并存储加载显示Text属性

在实际项目中为方便了解视觉软件的使用性,可能需要添加一些小而稍微实用的功能:一个StipStatus控件上的Label按钮属性Text需要修改并保存,软件重启后能够自动加载修改后的属性名。

定义变量

public static string controlsText = System.Windows.Forms.Application.StartupPath + "\\相关属性\\";
//子窗体窗口属性名修改
        private string FilePathText = VProClass.controlsText + "窗口属性名.txt";

主窗体中的代码

 #region 修改子窗体窗口属性 名
        private void SaveStatusLabelsText(string text, int toolRow)
        {
            // 读取文件的所有行
            string[] rowLines = System.IO.File.ReadAllLines(FilePathText);
            // 创建一个新的字符串列表,用于存储更新后的内容
            List<string> newLines = new List<string>();
            try
            {
                // 插入内容到指定位置 
                if (rowLines.Length >= 0)//需要考虑文本为空的情况
                {
                    using (StreamWriter writer = System.IO.File.AppendText(FilePathText))
                    {
                        if (toollabelTag == 1)
                            writer.WriteLine(text);

                        if (toollabelTag == 2)
                            writer.WriteLine(text);

                        if (toollabelTag == 3)
                            writer.WriteLine(text);

                        if (toollabelTag == 4)
                            writer.WriteLine(text);

                        if (toollabelTag == 5)
                            writer.WriteLine(text);

                        if (toollabelTag == 6)
                            writer.WriteLine(text);
                    }
                }

                // 插入内容到指定位置 
                if (rowLines.Length == Convert.ToInt32(ValuePropagation.count))
                {
                    for (int g = 0; g < rowLines.Length; g++)
                    {
                        if (g == toolRow - 1)
                        {
                            rowLines[g] = text;
                        }
                        //newLines.Add(rowLines[g]);
                    }
                    // 将更新后的内容写回到文件中
                    System.IO.File.WriteAllLines(FilePathText, rowLines);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show($"保存文本时出错:{ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void LoadStatusLabelsText()
        {
            if (System.IO.File.Exists(FilePathText))
            {
                try
                {
                    using (StreamReader reader = new StreamReader(FilePathText))
                    {
                        // 读取文件的所有行到一个字符串数组中
                        string[] lines = System.IO.File.ReadAllLines(FilePathText);

                        for (int k = 0; k < lines.Length; k++)
                        {
                            if (k == 0)
                                displayControls[0].相机编号1.Text = reader.ReadLine();
                            if (k == 1)
                                displayControls[1].相机编号2.Text = reader.ReadLine();
                            if (k == 2)
                                displayControls[2].相机编号3.Text = reader.ReadLine();
                            if (k == 3)
                                displayControls[3].相机编号4.Text = reader.ReadLine();
                            if (k == 4)
                                displayControls[4].相机编号5.Text = reader.ReadLine();
                            if (k == 5)
                                displayControls[5].相机编号6.Text = reader.ReadLine();
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show($"加载文本时出错:{ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }

        public void clearLabelText(int toolTag)
        {
            if (System.IO.File.Exists(FilePathText))
            {
                try
                {
                    using (StreamReader reader = new StreamReader(FilePathText))
                    {
                        // 读取文件的所有行到一个字符串数组中
                        List<string> linesRow = new List<string>(System.IO.File.ReadAllLines(FilePathText));

                        if (toolTag == 1 && toolTag < linesRow.Count)
                        {
                            string specifiedLineRow = linesRow[toolTag - 1];

                            if (specifiedLineRow != null)
                            {
                                linesRow.RemoveAt(toolTag - 1);//删除指定行
                            }
                        }

                        if (toolTag == 2 && toolTag < linesRow.Count)
                        {
                            string specifiedLineRow = linesRow[toolTag - 1];

                            if (specifiedLineRow != null)
                            {
                                linesRow.RemoveAt(toolTag - 1);//删除指定行
                            }
                        }

                        if (toolTag == 3 && toolTag < linesRow.Count)
                        {
                            string specifiedLineRow = linesRow[toolTag - 1];

                            if (specifiedLineRow != null)
                            {
                                linesRow.RemoveAt(toolTag - 1);//删除指定行
                            }
                        }

                        if (toolTag == 4 && toolTag < linesRow.Count)
                        {
                            string specifiedLineRow = linesRow[toolTag - 1];

                            if (specifiedLineRow != null)
                            {
                                linesRow.RemoveAt(toolTag - 1);//删除指定行
                            }
                        }

                        if (toolTag == 5 && toolTag < linesRow.Count)
                        {
                            string specifiedLineRow = linesRow[toolTag - 1];

                            if (specifiedLineRow != null)
                            {
                                linesRow.RemoveAt(toolTag - 1);//删除指定行
                            }
                        }

                        if (toolTag == 6 && toolTag < linesRow.Count)
                        {
                            string specifiedLineRow = linesRow[toolTag - 1];

                            if (specifiedLineRow != null)
                            {
                                linesRow.RemoveAt(toolTag - 1);//删除指定行
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show($"加载文本时出错:{ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

            }
        }
        private void 相机编号1_Click(object sender, EventArgs e)
        {
            //输入Text属性名
            var label = sender as ToolStripStatusLabel;
            toollabelTag = 1;
            if (label != null)
            {
                // 弹出输入框让用户输入新的文本 
                input = Microsoft.VisualBasic.Interaction.InputBox("请输入新的文本:", "修改子窗体名", label.Text);
                if (!string.IsNullOrEmpty(input))
                {
                    label.Text = input;
                    clearLabelText(toollabelTag);
                    // 保存修改后的文本 
                    SaveStatusLabelsText(label.Text, toollabelTag);
                }
            }
        }
#endregion

主窗体Load事件中添加

//修改子窗体名
            displayControls[0].相机编号1.Click += 相机编号1_Click;
            
            // 加载保存的文本 
                LoadStatusLabelsText();
http://www.dtcms.com/a/18577.html

相关文章:

  • 无人机雨季应急救灾技术详解
  • 计算机毕业设计Tensorflow+LSTM空气质量监测及预测系统 天气预测系统 Spark Hadoop 深度学习 机器学习 人工智能
  • Linux 常见的虚拟文件系统
  • 大数据学习之PB级百战出行网约车二
  • MySQL数据库入门到大蛇尚硅谷宋红康老师笔记 基础篇 part 10
  • Python----PyQt开发(PyQt高级:图像显示,定时器,进度条)
  • 2024年终总结和2025年规划
  • Java中使用EasyExcel
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_gmtime 函数
  • 每日Attention学习23——KAN-Block
  • 低空经济:开启未来空中生活的全新蓝海
  • 【动态规划】--- 斐波那契数模型
  • Golang关于结构体组合赋值的问题
  • React源码解读
  • 尚硅谷爬虫note004
  • Unity3D 类MOBA角色控制器 开箱即用
  • 《安富莱嵌入式周报》第350期:Google开源Pebble智能手表,开源模块化机器人平台,开源万用表,支持10GHz HRTIM的单片机,开源CNC控制器
  • JVM ②-双亲委派模型 || 垃圾回收GC
  • vscode使用常见问题处理合集
  • 2025-02-13 学习记录--C/C++-PTA 7-14 求整数段和
  • ChatGPT vs DeepSeek详细对比
  • 字玩FontPlayer开发笔记13 Vue3实现钢笔工具
  • 【设计模式】【行为型模式】访问者模式(Visitor)
  • 《Stable Diffusion绘画完全指南:从入门到精通的Prompt设计艺术》 第二章
  • Python的那些事第十八篇:框架与算法应用研究,人工智能与机器学习
  • 深度学习算法​:ocr营业执照识别可提取字段、接口识别
  • Hello Robot 推出Stretch 3移动操作机器人,赋能研究与商业应用
  • vue3常见面试题
  • Python 面向对象(类,对象,方法,属性,魔术方法)
  • 华为防火墙pppoe拨号接入互联网配置案例