• c# xml 参数配置表的使用


    使用简介

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    实际使用界面

    在这里插入图片描述

    配置表管理界面

    在这里插入图片描述

    进入

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    using Sunny.UI;
    using System.Xml;
    using System.IO;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
            public ModuleGrid()
            {
                InitializeComponent();
                uipanelMain.AutoScroll = true;//防止内容过多 当显示不下的时候 可以有滚轮
                //DisplayData();//这个在这里使用不知道为什么就是报错 显示未将对象设置引用到对象实例  我直接放最开始调用
                //MessageBox.Show("kai ");
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

            public static ModuleGrid modgrid;
            private void uiButton1_Click(object sender, EventArgs e)
            {
                modgrid = new ModuleGrid();
                modgrid.Show();
    
                ModuleGrid.DisplayData();//这个函数的作用就是新增我们需要的框的控件
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
           private static int width = 360;
            private static int height = 254;
            private static List<GridContent> list;
            public static string path = Directory.GetCurrentDirectory()+ "\\ParameterSet\\grid.xml";
            public static void DisplayData()
            {
                try
                {
                    list = new List<GridContent>();
                    XmlDocument doc = new XmlDocument();
                    doc.Load(path);
                    XmlNodeList nodeList = doc.SelectNodes("/person/list");//xPath相关手册,找节点person的list
                    int index = 1;
                    foreach (XmlNode node in nodeList)
                    {
                        string no = node.Attributes["no"].Value;
                        string modeName = node.SelectSingleNode("modeName").InnerText;
                        //MessageBox.Show("modeName:" + modeName);
                        GridContent grid = new GridContent();
                        grid.No = no;
    
                        list.Add(grid);
                        addUIItem(index, modeName);//UI增加
                        index++;
                    }
                }
                catch (Exception ex)
                {
                    log.SaveLog(@"报告模板异常:" + ex.Message);
                }
            }
          
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
     class GridContent
        {
           
    
    
            private string modeName;
            private string no;
    
            public string ModeName
            {
                get
                {
                    return modeName;
                }
    
                set
                {
                    modeName = value;
                }
            }
    
            public string No
            {
                get
                {
                    return no;
                }
    
                set
                {
                    no = value;
                }
            }
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    private static void addUIItem(int index, string modeName)
            {
                //1724 -50 - 4*width =   78
                UIPanel paneln = new UIPanel();
                int curIndex = index / 4;
                int mod = index % 4;
                int pointX = (width + 65) * (mod) + 25;
                int pointY = curIndex * (height) + (curIndex + 1) * 25;
                paneln.Location = new Point(pointX, pointY);
                paneln.Size = new Size(width, height);
                paneln.FillColor = Color.White;
                paneln.RectColor = ColorTranslator.FromHtml("#D6D6D6");
    
                UILabel label = new UILabel();
                label.AutoSize = false;
                label.Text = modeName;
                label.Location = new Point(40, 20);
                label.Size = new Size(300, 90);
                label.Font = new System.Drawing.Font("微软雅黑", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
                label.TextAlign = ContentAlignment.MiddleCenter;
    
                UIButton btnDel = new UIButton();
                btnDel.Size = new Size(100, 50);
                btnDel.Location = new Point(50, 170);
                btnDel.Font = new System.Drawing.Font("微软雅黑", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
                btnDel.FillColor = Color.White;
                btnDel.RectColor = ColorTranslator.FromHtml("#D6D6D6");
                btnDel.ForeColor = ColorTranslator.FromHtml("#333333");
                btnDel.Text = "删除";
                btnDel.Tag = list[index - 1].No;
                btnDel.Click += new System.EventHandler(btnDel_Click);
    
                UIButton btnEdit = new UIButton();
                btnEdit.Size = new Size(100, 50);
                btnEdit.Location = new Point(220, 170);
                btnEdit.Font = new System.Drawing.Font("微软雅黑", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
                btnEdit.FillColor = Color.White;
                btnEdit.RectColor = ColorTranslator.FromHtml("#D6D6D6");
                btnEdit.ForeColor = ColorTranslator.FromHtml("#333333");
                btnEdit.Text = "编辑";
                btnEdit.Tag = list[index - 1].No;
                btnEdit.Click += new EventHandler(btnEdit_Click);
    
                paneln.Controls.Add(label);
                paneln.Controls.Add(btnDel);
                paneln.Controls.Add(btnEdit);
                Form1.modgrid.uipanelMain.Controls.Add(paneln);
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48

    确定和返回按键

    this.Close();
    
    • 1

    新增项的按键

    在进入的addUIItem函数里面添加的

    在这里插入图片描述

    编辑

     private static void btnEdit_Click(object sender, EventArgs e)
            {
                UIButton btn = (UIButton)sender;
                string no = btn.Tag.ToString();
                //  new AddModule("edit", no, uipanelMain).Show();
    
                AddModule frm = new AddModule("edit", no, Form1.modgrid.uipanelMain);    
                frm.Show();
                Form1.modgrid.Hide();//如果是关闭 那么下次是无法show的
    
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    删除

     private static void btnDel_Click(object sender, EventArgs e)
            {
                UIButton btn = (UIButton)sender;
                string no = btn.Tag.ToString();
                delUI();
                delGridItem(no);
                //this.Invalidate();
                //this.Refresh();
            }
    
       public static void delUI()
            {
                int index = 0;
                for (int i = list.Count() - 1; i >= 0; i--)
                {
                    index = (i + 1);
                    Form1.modgrid.uipanelMain.Controls.RemoveAt(index);
    
                }
            }
    
    private static void delGridItem(string no)
            {
                XmlDocument doc = new XmlDocument();
                doc.Load(path);
                XmlElement root = doc.DocumentElement;
                XmlNodeList xmlNodeList = doc.SelectNodes("/person/list[@no='" + no + "']");
                foreach (XmlNode xmlNode in xmlNodeList)
                {
                    xmlNode.ParentNode.RemoveChild(xmlNode);
                }
                doc.Save(path);
                DisplayData();
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    新增一个
    在这里插入图片描述

            private void uiPanel3_Click(object sender, EventArgs e)
            {
                OpenAddModule();
            }
    
            private void pictureBox2_Click(object sender, EventArgs e)
            {
                OpenAddModule();
            }
    
            private void uiLabel3_Click(object sender, EventArgs e)
            {
                OpenAddModule();
            }
            
            public static void OpenAddModule()
            {
                AddModule frm = new AddModule("add", "", Form1.modgrid.uipanelMain);
                frm.Show();
                Form1.modgrid.Hide();//如果是关闭 那么下次是无法show的
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    页面传递讲解

            public static void OpenAddModule()
            {
                AddModule frm = new AddModule("add", "", Form1.modgrid.uipanelMain);
                frm.Show();
                Form1.modgrid.Hide();//如果是关闭 那么下次是无法show的
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    要打开的界面 给他一个带参数的构造函数就可以了

            string no;
            UIPanel uipanel;
            string type;
            public static string path = Directory.GetCurrentDirectory() + "\\ParameterSet\\grid.xml";
            public AddModule(string type, string no, UIPanel uipanel)//这三个参数都是自己新加的 不然是没有参数的 用于上一页面传入参数进来
            {
                InitializeComponent();
    
                this.no = no;
                this.type = type;
                this.uipanel = uipanel;
                if (type.Equals("add"))
                {
                    labelTItle.Text = "新增配置表";
                }
                else if (type.Equals("edit"))
                {
                    try
                    {
                        labelTItle.Text = "编辑配置表";
                        //赋值
                        XmlDocument doc = new XmlDocument();
                        doc.Load(path);
                        XmlNodeList xmlNodeList = doc.SelectNodes("/person/list[@no='" + no + "']");
                        XmlNode node = xmlNodeList[0];
    
                        tmodelName.Text = node.SelectSingleNode("modeName").InnerText;
                        clientTextBox.Text = node.SelectSingleNode("client").InnerText;
                        hardwareTextBox.Text = node.SelectSingleNode("hardware").InnerText;
                        softwareTextBox.Text = node.SelectSingleNode("software").InnerText;
                        tongshuTextBox.Text = node.SelectSingleNode("tongshu").InnerText;
                        kongshuTextBox.Text = node.SelectSingleNode("kongshu").InnerText;
                        TMCuiTextBox.Text = node.SelectSingleNode("tmc").InnerText;
                        typeuiTextBox.Text = node.SelectSingleNode("type").InnerText;
    
                        order1TextBox.Text = node.SelectSingleNode("order1").InnerText;
                        order2TextBox.Text = node.SelectSingleNode("order2").InnerText;
                        order3TextBox.Text = node.SelectSingleNode("order3").InnerText;
                        order4TextBox.Text = node.SelectSingleNode("order4").InnerText;
                        order5TextBox.Text = node.SelectSingleNode("order5").InnerText;
                        order6TextBox.Text = node.SelectSingleNode("order6").InnerText;
                        order7TextBox.Text = node.SelectSingleNode("order7").InnerText;
                        order8TextBox.Text = node.SelectSingleNode("order8").InnerText;
                        order9TextBox.Text = node.SelectSingleNode("order9").InnerText;
                        order10TextBox.Text = node.SelectSingleNode("order10").InnerText;
                        order11TextBox.Text = node.SelectSingleNode("order11").InnerText;
                        order12TextBox.Text = node.SelectSingleNode("order12").InnerText;
                        order13TextBox.Text = node.SelectSingleNode("order13").InnerText;
                    }
                    catch (Exception ex)
                    {
                        log.SaveLog(ex.ToString());
                        throw;
                    }
    
    
                }
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58

    新增页面

    在这里插入图片描述

    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 System.Xml;
    using Sunny.UI;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    构造函数

    可以进行参数的传递

            string no;
            UIPanel uipanel;
            string type;
            public static string path = Directory.GetCurrentDirectory() + "\\ParameterSet\\grid.xml";
            public AddModule(string type, string no, UIPanel uipanel)//这三个参数都是自己新加的 不然是没有参数的 用于上一页面传入参数进来
            {
                InitializeComponent();
    
                this.no = no;
                this.type = type;
                this.uipanel = uipanel;
                if (type.Equals("add"))
                {
                    labelTItle.Text = "新增配置表";
                }
                else if (type.Equals("edit"))
                {
                    try
                    {
                        labelTItle.Text = "编辑配置表";
                        //赋值
                        XmlDocument doc = new XmlDocument();
                        doc.Load(path);
                        XmlNodeList xmlNodeList = doc.SelectNodes("/person/list[@no='" + no + "']");
                        XmlNode node = xmlNodeList[0];
    
                        tmodelName.Text = node.SelectSingleNode("modeName").InnerText;
                        clientTextBox.Text = node.SelectSingleNode("client").InnerText;
                        hardwareTextBox.Text = node.SelectSingleNode("hardware").InnerText;
                        softwareTextBox.Text = node.SelectSingleNode("software").InnerText;
                        tongshuTextBox.Text = node.SelectSingleNode("tongshu").InnerText;
                        kongshuTextBox.Text = node.SelectSingleNode("kongshu").InnerText;
                        TMCuiTextBox.Text = node.SelectSingleNode("tmc").InnerText;
                        typeuiTextBox.Text = node.SelectSingleNode("type").InnerText;
    
                        order1TextBox.Text = node.SelectSingleNode("order1").InnerText;
                        order2TextBox.Text = node.SelectSingleNode("order2").InnerText;
                        order3TextBox.Text = node.SelectSingleNode("order3").InnerText;
                        order4TextBox.Text = node.SelectSingleNode("order4").InnerText;
                        order5TextBox.Text = node.SelectSingleNode("order5").InnerText;
                        order6TextBox.Text = node.SelectSingleNode("order6").InnerText;
                        order7TextBox.Text = node.SelectSingleNode("order7").InnerText;
                        order8TextBox.Text = node.SelectSingleNode("order8").InnerText;
                        order9TextBox.Text = node.SelectSingleNode("order9").InnerText;
                        order10TextBox.Text = node.SelectSingleNode("order10").InnerText;
                        order11TextBox.Text = node.SelectSingleNode("order11").InnerText;
                        order12TextBox.Text = node.SelectSingleNode("order12").InnerText;
                        order13TextBox.Text = node.SelectSingleNode("order13").InnerText;
                    }
                    catch (Exception ex)
                    {
                        log.SaveLog(ex.ToString());
                        throw;
                    }
                }
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56

    load函数

    进行一次自动的指令到指令名称的转换。如果该指令不等于0的话就进行一次转换

     private void AddModule_Load(object sender, EventArgs e)
            {
                try
                {
                    if (order1TextBox.Text != "0")
                    {
                        order1uiLabel.Text = Form1.judgeFun(Form1.strToToHexByte(order1TextBox.Text.Substring(0, order1TextBox.Text.IndexOf('*'))));
                        //log.SaveLog("指令转换1字符串:" + order1TextBox.Text.Substring(0, order1TextBox.Text.IndexOf('*')));
                        //for (int i = 0; i < 5; i++)
                        //{
                        //    log.SaveLog("转字节{i}:" + Form1.strToToHexByte(order1TextBox.Text.Substring(0, order1TextBox.Text.IndexOf('*')))[i]);
                        //}
    
                    }
                    if (order2TextBox.Text != "0")
                    {
                        order2uiLabel.Text = Form1.judgeFun(Form1.strToToHexByte(order2TextBox.Text.Substring(0, order2TextBox.Text.IndexOf('*'))));
                    }
                    if (order3TextBox.Text != "0")
                    {
                        order3uiLabel.Text = Form1.judgeFun(Form1.strToToHexByte(order3TextBox.Text.Substring(0, order3TextBox.Text.IndexOf('*'))));
                    }
    
                    if (order4TextBox.Text != "0")
                    {
                        order4uiLabel.Text = Form1.judgeFun(Form1.strToToHexByte(order4TextBox.Text.Substring(0, order4TextBox.Text.IndexOf('*'))));
                    }
    
                    if (order5TextBox.Text != "0")
                    {
                        order5uiLabel.Text = Form1.judgeFun(Form1.strToToHexByte(order5TextBox.Text.Substring(0, order5TextBox.Text.IndexOf('*'))));
                    }
    
                    if (order6TextBox.Text != "0")
                    {
                        order6uiLabel.Text = Form1.judgeFun(Form1.strToToHexByte(order6TextBox.Text.Substring(0, order6TextBox.Text.IndexOf('*'))));
                    }
    
                    if (order7TextBox.Text != "0")
                    {
                        order7uiLabel.Text = Form1.judgeFun(Form1.strToToHexByte(order7TextBox.Text.Substring(0, order7TextBox.Text.IndexOf('*'))));
                    }
    
                    if (order8TextBox.Text != "0")
                    {
                        order8uiLabel.Text = Form1.judgeFun(Form1.strToToHexByte(order8TextBox.Text.Substring(0, order8TextBox.Text.IndexOf('*'))));
                    }
    
                    if (order9TextBox.Text != "0")
                    {
                        order9uiLabel.Text = Form1.judgeFun(Form1.strToToHexByte(order9TextBox.Text.Substring(0, order9TextBox.Text.IndexOf('*'))));
                    }
    
                    if (order10TextBox.Text != "0")
                    {
                        order10uiLabel.Text = Form1.judgeFun(Form1.strToToHexByte(order10TextBox.Text.Substring(0, order10TextBox.Text.IndexOf('*'))));
                    }
    
                    if (order11TextBox.Text != "0")
                    {
                        order11uiLabel.Text = Form1.judgeFun(Form1.strToToHexByte(order11TextBox.Text.Substring(0, order11TextBox.Text.IndexOf('*'))));
                    }
    
                    if (order12TextBox.Text != "0")
                    {
                        order12uiLabel.Text = Form1.judgeFun(Form1.strToToHexByte(order12TextBox.Text.Substring(0, order12TextBox.Text.IndexOf('*'))));
                    }
                    if (order13TextBox.Text != "0")
                    {
                        order13uiLabel.Text = Form1.judgeFun(Form1.strToToHexByte(order13TextBox.Text.Substring(0, order13TextBox.Text.IndexOf('*'))));
                    }
    
                }
                catch (Exception ex)
                {
                    log.SaveLog("配置表转换报错:" + ex.Message);
                }
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78

    字符串转字节

            public static byte[] strToToHexByte(string hexString)
            {
                hexString = hexString.Replace(" ", "");//去掉空格
                if ((hexString.Length % 2) != 0)
                    hexString += " ";
                byte[] returnBytes = new byte[hexString.Length / 2];//字符串两个就是一个十六进制数
                for (int i = 0; i < returnBytes.Length; i++)
                    returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
                return returnBytes;
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    根据第二个字节进行对应指令的查找

    public static string judgeFun(byte[] a)
            {
                string orderName = "0";
                if (a[2] == 1){orderName = "恢复出厂设置";}
                else if (a[2] == 2) {  orderName = "设置本机地址"; }
                else if (a[2] == 3) { orderName = "读取本机地址"; }
                else if (a[2] == 4) { orderName = "设置波特率"; }
                else if (a[2] == 5) { orderName = "复位"; }
                else if (a[2] == 6) { orderName = "切换通道"; }
                else if (a[2] == 7) { orderName = "读当前通道"; }
                else if (a[2] == 8) { orderName = "读版本"; }
                else if (a[2] == 9) { orderName = "设置CRC校验"; }
                else if (a[2] == 0xA) { orderName = "查询最大通道"; }
                else if (a[2] == 0xB) { orderName = "设置最大通道"; }
                else if (a[2] == 0xC) { orderName = "查正向补偿"; }
                else if (a[2] == 0xE) { orderName = "查反向补偿"; }
                else if (a[2] == 10) { orderName = "查通讯方式"; }
                else if (a[2] == 11) { orderName = "设置通讯方式";}
                else if (a[2] == 12) {orderName = "查电机最小速度";}
                else if (a[2] == 13) {orderName = "设置电机最小速度";}
                else if (a[2] == 14) {orderName = "查电机最大速度";}
                else if (a[2] == 15) {orderName = "设置电机最大速度";}
                else if (a[2] == 16) {orderName = "查丢步报错阈值";}
                else if (a[2] == 17) {orderName = "设置丢步报错阈值";}
                else if (a[2] == 80) {orderName = "常规报错";}
                else if (a[2] == 81) {orderName = "电机正向失步";}
                else if (a[2] == 82) {orderName = "电机反向失步";}
                else if (a[2] == 83) {orderName = "异常断电未归零";}
                else if (a[2] == 18) {orderName = "查磁场强度";}
                else if (a[2] == 19) {orderName = "磁编校准";}
                return orderName;
                }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    确定按钮

     private void uiButton1_Click(object sender, EventArgs e)
            {
                XmlDocument doc = new XmlDocument();
                if (type.Equals("add"))
                {
                    log.SaveLog(@"新增模板");
                    DateTime dt = new DateTime();
                    dt = System.DateTime.Now;
                    //此处的大小写必须完全按照如下才能输出长日期长时间,时间为24小时制式,hh:mm:ss格式输出12小时制式时间
                    string no = dt.ToString("yyyyMMddHHmmss");
    
                    if (!File.Exists(path))
                    {
                        //新建一个xml文档
                        //1、实例化一个XmlDocument
                        XmlDeclaration xnode = doc.CreateXmlDeclaration("1.0", "UTF-8", "");
                        doc.AppendChild(xnode);
                        XmlElement root = doc.CreateElement("person");
                        doc.AppendChild(root);
    
                        XmlElement newElement = doc.CreateElement("list");
                        newElement.SetAttribute("no", no);//添加属性
                        root.AppendChild(newElement);
    
                        XmlElement modeName = doc.CreateElement("modeName");
                        modeName.InnerText = tmodelName.Text;
                        newElement.AppendChild(modeName);
    
                        XmlElement client = doc.CreateElement("client");
                        client.InnerText = clientTextBox.Text;
                        newElement.AppendChild(client);
    
    
                        XmlElement hardware = doc.CreateElement("hardware");
                        hardware.InnerText = hardwareTextBox.Text;
                        newElement.AppendChild(hardware);
    
                        XmlElement software = doc.CreateElement("software");
                        software.InnerText = softwareTextBox.Text;
                        newElement.AppendChild(software);
    
    
                        XmlElement tongshu = doc.CreateElement("tongshu");
                        tongshu.InnerText = tongshuTextBox.Text;
                        newElement.AppendChild(tongshu);
    
    
                        XmlElement kongshu = doc.CreateElement("kongshu");
                        kongshu.InnerText = kongshuTextBox.Text;
                        newElement.AppendChild(kongshu);
    
                        XmlElement TMC = doc.CreateElement("tmc");
                        TMC.InnerText = tongshuTextBox.Text;
                        newElement.AppendChild(TMC);
    
    
                        XmlElement type = doc.CreateElement("type");
                        type.InnerText = kongshuTextBox.Text;
                        newElement.AppendChild(type);
    
                        XmlElement order1 = doc.CreateElement("order1");
                        order1.InnerText = order1TextBox.Text;
                        newElement.AppendChild(order1);
    
                        XmlElement order2 = doc.CreateElement("order2");
                        order2.InnerText = order2TextBox.Text;
                        newElement.AppendChild(order2);
    
                        XmlElement order3 = doc.CreateElement("order3");
                        order3.InnerText = order3TextBox.Text;
                        newElement.AppendChild(order3);
    
                        XmlElement order4 = doc.CreateElement("order4");
                        order4.InnerText = order4TextBox.Text;
                        newElement.AppendChild(order4);
    
                        XmlElement order5 = doc.CreateElement("order5");
                        order5.InnerText = order5TextBox.Text;
                        newElement.AppendChild(order5);
    
                        XmlElement order6= doc.CreateElement("order6");
                        order6.InnerText = order6TextBox.Text;
                        newElement.AppendChild(order6);
    
                        XmlElement order7 = doc.CreateElement("order7");
                        order7.InnerText = order7TextBox.Text;
                        newElement.AppendChild(order7);
    
                        XmlElement order8 = doc.CreateElement("order8");
                        order8.InnerText = order8TextBox.Text;
                        newElement.AppendChild(order8);
    
                        XmlElement order9 = doc.CreateElement("order9");
                        order9.InnerText = order9TextBox.Text;
                        newElement.AppendChild(order9);
    
                        XmlElement order10 = doc.CreateElement("order10");
                        order10.InnerText = order10TextBox.Text;
                        newElement.AppendChild(order10);
    
                        XmlElement order11 = doc.CreateElement("order11");
                        order11.InnerText = order11TextBox.Text;
                        newElement.AppendChild(order11);
    
                        XmlElement order12 = doc.CreateElement("order12");
                        order12.InnerText = order12TextBox.Text;
                        newElement.AppendChild(order12);
    
                        XmlElement order13 = doc.CreateElement("order13");
                        order13.InnerText = order13TextBox.Text;
                        newElement.AppendChild(order13);
    
                        root.AppendChild(newElement);
    
                        doc.Save(path);//注意这个的save路径是需要加上 .xml的
    
                        this.Close();
                        Form1.modgrid.Show();
                    }
                    else
                    {
                        doc.Load(path);
                        XmlElement root = doc.DocumentElement;
                        XmlElement newElement = doc.CreateElement("list");
                        newElement.SetAttribute("no", no);//添加属性
                        root.AppendChild(newElement);
    
                        XmlElement modeName = doc.CreateElement("modeName");
                        modeName.InnerText = tmodelName.Text;
                        newElement.AppendChild(modeName);
    
                        XmlElement client = doc.CreateElement("client");
                        client.InnerText = clientTextBox.Text;
                        newElement.AppendChild(client);
    
    
                        XmlElement hardware = doc.CreateElement("hardware");
                        hardware.InnerText = hardwareTextBox.Text;
                        newElement.AppendChild(hardware);
    
                        XmlElement software = doc.CreateElement("software");
                        software.InnerText = softwareTextBox.Text;
                        newElement.AppendChild(software);
    
    
                        XmlElement tongshu = doc.CreateElement("tongshu");
                        tongshu.InnerText = tongshuTextBox.Text;
                        newElement.AppendChild(tongshu);
    
    
                        XmlElement kongshu = doc.CreateElement("kongshu");
                        kongshu.InnerText = kongshuTextBox.Text;
                        newElement.AppendChild(kongshu);
    
                        XmlElement TMC = doc.CreateElement("tmc");
                        TMC.InnerText = tongshuTextBox.Text;
                        newElement.AppendChild(TMC);
    
    
                        XmlElement type = doc.CreateElement("type");
                        type.InnerText = kongshuTextBox.Text;
                        newElement.AppendChild(type);
    
                        XmlElement order1 = doc.CreateElement("order1");
                        order1.InnerText = order1TextBox.Text;
                        newElement.AppendChild(order1);
    
                        XmlElement order2 = doc.CreateElement("order2");
                        order2.InnerText = order2TextBox.Text;
                        newElement.AppendChild(order2);
    
                        XmlElement order3 = doc.CreateElement("order3");
                        order3.InnerText = order3TextBox.Text;
                        newElement.AppendChild(order3);
    
                        XmlElement order4 = doc.CreateElement("order4");
                        order4.InnerText = order4TextBox.Text;
                        newElement.AppendChild(order4);
    
                        XmlElement order5 = doc.CreateElement("order5");
                        order5.InnerText = order5TextBox.Text;
                        newElement.AppendChild(order5);
    
                        XmlElement order6 = doc.CreateElement("order6");
                        order6.InnerText = order6TextBox.Text;
                        newElement.AppendChild(order6);
    
                        XmlElement order7 = doc.CreateElement("order7");
                        order7.InnerText = order7TextBox.Text;
                        newElement.AppendChild(order7);
    
                        XmlElement order8 = doc.CreateElement("order8");
                        order8.InnerText = order8TextBox.Text;
                        newElement.AppendChild(order8);
    
                        XmlElement order9 = doc.CreateElement("order9");
                        order9.InnerText = order9TextBox.Text;
                        newElement.AppendChild(order9);
    
                        XmlElement order10 = doc.CreateElement("order10");
                        order10.InnerText = order10TextBox.Text;
                        newElement.AppendChild(order10);
    
                        XmlElement order11 = doc.CreateElement("order11");
                        order11.InnerText = order11TextBox.Text;
                        newElement.AppendChild(order11);
    
                        XmlElement order12 = doc.CreateElement("order12");
                        order12.InnerText = order12TextBox.Text;
                        newElement.AppendChild(order12);
    
                        XmlElement order13 = doc.CreateElement("order13");
                        order13.InnerText = order13TextBox.Text;
                        newElement.AppendChild(order13);
    
                        root.AppendChild(newElement);
    
                        this.Close();
                        Form1.modgrid.Show();
                    }
                }
                else if (type.Equals("edit"))
                {
    
                    log.SaveLog(@"编辑模板");
                    doc.Load(path);
                    XmlNodeList xmlNodeList = doc.SelectNodes("/person/list[@no='" + no + "']");
    
                    xmlNodeList[0].SelectSingleNode("modeName").InnerText = tmodelName.Text;
                    xmlNodeList[0].SelectSingleNode("client").InnerText = clientTextBox.Text;
                    xmlNodeList[0].SelectSingleNode("hardware").InnerText = hardwareTextBox.Text;
                    xmlNodeList[0].SelectSingleNode("software").InnerText = softwareTextBox.Text;
                    xmlNodeList[0].SelectSingleNode("tongshu").InnerText = tongshuTextBox.Text;
                    xmlNodeList[0].SelectSingleNode("kongshu").InnerText = kongshuTextBox.Text;
                    xmlNodeList[0].SelectSingleNode("tmc").InnerText = TMCuiTextBox.Text;
                    xmlNodeList[0].SelectSingleNode("type").InnerText = typeuiTextBox.Text;
    
                    xmlNodeList[0].SelectSingleNode("order1").InnerText = order1TextBox.Text;
                    xmlNodeList[0].SelectSingleNode("order2").InnerText = order2TextBox.Text;
                    xmlNodeList[0].SelectSingleNode("order3").InnerText = order3TextBox.Text;
                    xmlNodeList[0].SelectSingleNode("order4").InnerText = order4TextBox.Text;
                    xmlNodeList[0].SelectSingleNode("order5").InnerText = order5TextBox.Text;
                    xmlNodeList[0].SelectSingleNode("order6").InnerText = order6TextBox.Text;
                    xmlNodeList[0].SelectSingleNode("order7").InnerText = order7TextBox.Text;
                    xmlNodeList[0].SelectSingleNode("order8").InnerText = order8TextBox.Text;
                    xmlNodeList[0].SelectSingleNode("order9").InnerText = order9TextBox.Text;
                    xmlNodeList[0].SelectSingleNode("order10").InnerText = order10TextBox.Text;
                    xmlNodeList[0].SelectSingleNode("order11").InnerText = order11TextBox.Text;
                    xmlNodeList[0].SelectSingleNode("order12").InnerText = order12TextBox.Text;
                    xmlNodeList[0].SelectSingleNode("order13").InnerText = order13TextBox.Text;
                }
                doc.Save(path);
                ModuleGrid.delUI();
                ModuleGrid.DisplayData();
    
                this.Close();
                Form1.modgrid.Show();
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235
    • 236
    • 237
    • 238
    • 239
    • 240
    • 241
    • 242
    • 243
    • 244
    • 245
    • 246
    • 247
    • 248
    • 249
    • 250
    • 251
    • 252
    • 253
    • 254
    • 255
    • 256
    • 257
    • 258

    返回

            private void uiButton2_Click(object sender, EventArgs e)
            {
                this.Close();
                Form1.modgrid.Show();
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    转换

     private void uiButton3_Click(object sender, EventArgs e)
            {
                try
                {
                    if (order1TextBox.Text!="0")
                    {
                        order1uiLabel.Text = Form1.judgeFun(Form1.strToToHexByte(order1TextBox.Text.Substring(0, order1TextBox.Text.IndexOf('*'))));
                        //log.SaveLog("指令转换1字符串:" + order1TextBox.Text.Substring(0, order1TextBox.Text.IndexOf('*')));
                        //for (int i = 0; i < 5; i++)
                        //{
                        //    log.SaveLog("转字节{i}:" + Form1.strToToHexByte(order1TextBox.Text.Substring(0, order1TextBox.Text.IndexOf('*')))[i]);
                        //}
                        
                    }
                    if (order2TextBox.Text != "0")
                    {
                        order2uiLabel.Text = Form1.judgeFun(Form1.strToToHexByte(order2TextBox.Text.Substring(0, order2TextBox.Text.IndexOf('*'))));
                    }             
                    if (order3TextBox.Text != "0")
                    {
                        order3uiLabel.Text = Form1.judgeFun(Form1.strToToHexByte(order3TextBox.Text.Substring(0, order3TextBox.Text.IndexOf('*'))));
                    }
                    
                    if (order4TextBox.Text != "0")
                    {
                       order4uiLabel.Text = Form1.judgeFun(Form1.strToToHexByte(order4TextBox.Text.Substring(0, order4TextBox.Text.IndexOf('*'))));
                    }
                    
                    if (order5TextBox.Text != "0")
                    {
                        order5uiLabel.Text = Form1.judgeFun(Form1.strToToHexByte(order5TextBox.Text.Substring(0, order5TextBox.Text.IndexOf('*'))));
                    }
                   
                    if (order6TextBox.Text != "0")
                    {
                        order6uiLabel.Text = Form1.judgeFun(Form1.strToToHexByte(order6TextBox.Text.Substring(0, order6TextBox.Text.IndexOf('*'))));
                    }
                    
                    if (order7TextBox.Text != "0")
                    {
                        order7uiLabel.Text = Form1.judgeFun(Form1.strToToHexByte(order7TextBox.Text.Substring(0, order7TextBox.Text.IndexOf('*'))));
                    }
                    
                    if (order8TextBox.Text != "0")
                    {
                        order8uiLabel.Text = Form1.judgeFun(Form1.strToToHexByte(order8TextBox.Text.Substring(0, order8TextBox.Text.IndexOf('*'))));
                    }
                    
                    if (order9TextBox.Text != "0")
                    {
                        order9uiLabel.Text = Form1.judgeFun(Form1.strToToHexByte(order9TextBox.Text.Substring(0, order9TextBox.Text.IndexOf('*'))));
                    }
                    
                    if (order10TextBox.Text != "0")
                    {
                        order10uiLabel.Text = Form1.judgeFun(Form1.strToToHexByte(order10TextBox.Text.Substring(0, order10TextBox.Text.IndexOf('*'))));
                    }
                    
                    if (order11TextBox.Text != "0")
                    {
                        order11uiLabel.Text = Form1.judgeFun(Form1.strToToHexByte(order11TextBox.Text.Substring(0, order11TextBox.Text.IndexOf('*'))));
                    }
                   
                    if (order12TextBox.Text != "0")
                    {
                        order12uiLabel.Text = Form1.judgeFun(Form1.strToToHexByte(order12TextBox.Text.Substring(0, order12TextBox.Text.IndexOf('*'))));
                    }
                    if (order13TextBox.Text != "0")
                    {
                        order13uiLabel.Text = Form1.judgeFun(Form1.strToToHexByte(order13TextBox.Text.Substring(0, order13TextBox.Text.IndexOf('*'))));
                    }
                    
                }
                catch (Exception ex)
                {
                    log.SaveLog("配置表转换报错:" + ex.Message);
                }
    
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79

    使用界面

    在这里插入图片描述

    读配置表

    private void uiButton6_Click(object sender, EventArgs e)
            {
                try
                {
                    string str = uiComboBox1.Text.Trim();
                    index = 0;
                    if (str == String.Empty)
                    {
                        MessageBox.Show("请先选择配置表");
                        return;
                    }
                    else
                    {
                        //发送指令
                        string no = "0";
                        XmlDocument doc = new XmlDocument();
                        doc.Load(AddModule.path);
                        XmlNodeList nodeList = doc.SelectNodes("/person/list");//xPath相关手册,找节点person的list    
                        foreach (XmlNode node1 in nodeList)
                        {
                            string modeName = node1.SelectSingleNode("modeName").InnerText;
    
                            if (modeName == uiComboBox1.Text)
                            {
                                no = node1.Attributes["no"].Value;
                                break;
                            }
                            else
                            {
                                continue;
                            }
                        }
                        if (no == "0")
                        {
                            return;
                            MessageBox.Show("未读取到配置表");
                        }
    
                        xmlNodeList = doc.SelectNodes("/person/list[@no='" + no + "']");
                        node = xmlNodeList[0];
    
                        label2.Text= "客户:"+node.SelectSingleNode("client").InnerText;
                        label3.Text = "TMC/磁编:" + node.SelectSingleNode("tmc").InnerText;
                        label4.Text = "型号:" + node.SelectSingleNode("type").InnerText;
                        label5.Text = "通数:" + node.SelectSingleNode("tongshu").InnerText;
    
                        uiButton4.Enabled = true;
                        uiButton8.Enabled = true;
                        tableFlag = true;
    
                    }
    
                }
                catch (Exception ex)
                {
    
                    throw;
                }
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59

    选择配置按钮点击

    在这里插入图片描述
    更新一下有哪些配置表

            private void uiComboBox1_ButtonClick(object sender, EventArgs e)
            { 
                UpdateCfgTable();
            }
    
    • 1
    • 2
    • 3
    • 4
     public static string path = Directory.GetCurrentDirectory()+ "\\ParameterSet\\grid.xml";
            public void UpdateCfgTable()
            {
                XmlDocument doc = new XmlDocument();
                doc.Load(ModuleGrid.path);
                XmlNodeList nodeList = doc.SelectNodes("/person/list");//xPath相关手册,找节点person的list
                uiComboBox1.Items.Clear();
                foreach (XmlNode node in nodeList)
                {
                    string modeName = node.SelectSingleNode("modeName").InnerText;
                    uiComboBox1.Items.Add(modeName);
                    uiComboBox1.Text = modeName;
                }
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
  • 相关阅读:
    服务器质量不好会对网站造成的危害有哪些?
    IPWorks Encrypt Delphi强加密的一整套组件
    「专升本信息技术」计算机基础知识单选题集 (15)
    字符串反转(Python)
    hash算法
    MQ相关介绍
    基于 Eureka 的 Ribbon 负载均衡实现原理【SpringCloud 源码分析】
    leetcode-剑指 Offer II 001. 整数除法
    【Android】Handler为什么会造成内存泄漏
    算法分析与设计CH25:回溯算法Back-Tracking——N皇后问题
  • 原文地址:https://blog.csdn.net/chengcao123/article/details/133828002