当前位置: 首页 > 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();

相关文章:

  • 无人机雨季应急救灾技术详解
  • 计算机毕业设计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 求整数段和
  • OpenAI任命了一位新CEO
  • 文旅部:加强对景区索道、游船等设施设备安全隐患排查整治
  • 许昌市场监管部门对胖东来玉石开展日常检查:平均毛利率不超20%
  • 中国驻美大使谢锋:经贸关系不是零和游戏,滥施关税损人害己
  • 贵州黔西市载人游船倾覆事故已致3人遇难,14人正在搜救中
  • 消息人士称以色列政府初步同意扩大对加沙军事行动