/// <summary> /// 处理ComboBox.Text如果不在box.Items里面,则添加进入去(不足三个则依次添加,达到三个则替换第一个) /// </summary> /// <param name="box">ComboBox控件</param> /// <param name="general_">General_format类型的数据</param> /// <param name="list">暂存数据的list</param> /// <param name="start">第几位开始,默认0</param> /// <returns></returns> private static General_format Add_config_cmb(ComboBox box, General_format general_, List <string> list, int start = 0) { //如果输入的值不在常用值列表里面 if (!Is_include(box.Text, list)) //if (!box.Items.Contains(box.Text)) { switch (box.Items.Count - start) { //还没有常用值的时候,添加第一个常用 数值 case 1: list[start + 1] = box.Text; break; //只有1个常用值的时候,添加第2个常用 数值 case 2: list[start + 2] = box.Text; break; //有2个常用值的时候,添加第3个常用 数值 case 3: list[start + 3] = box.Text; break; //有3个常用值的时候,替换第1个常用 数值 case 4: list[start + 1] = list[start + 2]; list[start + 2] = list[start + 3]; list[start + 3] = box.Text; break; } } general_ = new General_format { strOtherOne = list[start + 1], strOtherTwo = list[start + 2], strOtherThree = list[start + 3] }; Combox_add(box, list); box.SelectedIndex = 0; return(general_); }
/// <summary> /// 把新配置写入json文件中 /// </summary> private void Json_write() { My_config my_Config = ReadFile(); var config = new My_config(); var command_config = new Command_config(); var FrameHead = new General_format(); var FrameTail = new General_format(); var FrameData = new General_format(); var FrameCommand = new General_format(); var FrameOne = new General_format(); var FramTwo = new General_format(); var FramThree = new General_format(); var command_name = new General_format(); var list_Name = new List_format(); var list_Value = new List_format(); //listview 列表表头 list_Name = Add_config_Columns_listView(this.listView1, list_Name, listview_name, this.comboBox1); //listview 列表表值 list_Value = Add_config_Value_listView(this.listView1, list_Value, listview_value, this.comboBox2); //选项名 //根据实际个数来写入配置:选项名称 中 switch (comboBox1.SelectedIndex) { //选择“帧头”选项时 case 1: FrameHead = Add_config_cmb(comboBox2, FrameHead, list_FrameHead); command_config = new Command_config { strFrameHead = FrameHead, strFrameTail = my_Config.Command_config.strFrameTail, strFrameCheckCode = my_Config.Command_config.strFrameCheckCode, intFrameSequential = my_Config.Command_config.intFrameSequential, strFrameData = my_Config.Command_config.strFrameData, strFrameCommand = my_Config.Command_config.strFrameCommand, strFrameOne = my_Config.Command_config.strFrameOne, strFramTwo = my_Config.Command_config.strFramTwo, strFramThree = my_Config.Command_config.strFramThree }; break; //选择“时序”的时候,显示框内容就是时序位 case 2: command_config = new Command_config { strFrameHead = my_Config.Command_config.strFrameHead, strFrameTail = my_Config.Command_config.strFrameTail, strFrameCheckCode = my_Config.Command_config.strFrameCheckCode, intFrameSequential = this.comboBox2.Text, strFrameData = my_Config.Command_config.strFrameData, strFrameCommand = my_Config.Command_config.strFrameCommand, strFrameOne = my_Config.Command_config.strFrameOne, strFramTwo = my_Config.Command_config.strFramTwo, strFramThree = my_Config.Command_config.strFramThree }; break; //选择“命令码”的时候 case 3: FrameCommand = Add_config_cmb(comboBox2, FrameCommand, list_FrameCommand); command_config = new Command_config { strFrameHead = my_Config.Command_config.strFrameHead, strFrameTail = my_Config.Command_config.strFrameTail, strFrameCheckCode = my_Config.Command_config.strFrameCheckCode, intFrameSequential = my_Config.Command_config.intFrameSequential, strFrameData = my_Config.Command_config.strFrameData, strFrameCommand = FrameCommand, strFrameOne = my_Config.Command_config.strFrameOne, strFramTwo = my_Config.Command_config.strFramTwo, strFramThree = my_Config.Command_config.strFramThree }; break; //选择“数据”的时候 case 4: FrameData = Add_config_cmb(comboBox2, FrameData, list_FrameData); command_config = new Command_config { strFrameHead = my_Config.Command_config.strFrameHead, strFrameTail = my_Config.Command_config.strFrameTail, strFrameCheckCode = my_Config.Command_config.strFrameCheckCode, intFrameSequential = my_Config.Command_config.intFrameSequential, strFrameData = FrameData, strFrameCommand = my_Config.Command_config.strFrameCommand, strFrameOne = my_Config.Command_config.strFrameOne, strFramTwo = my_Config.Command_config.strFramTwo, strFramThree = my_Config.Command_config.strFramThree }; break; //选择“校验”的时候 case 5: command_config = new Command_config { strFrameHead = my_Config.Command_config.strFrameHead, strFrameTail = my_Config.Command_config.strFrameTail, strFrameCheckCode = comboBox2.Text, intFrameSequential = my_Config.Command_config.intFrameSequential, strFrameData = my_Config.Command_config.strFrameData, strFrameCommand = my_Config.Command_config.strFrameCommand, strFrameOne = my_Config.Command_config.strFrameOne, strFramTwo = my_Config.Command_config.strFramTwo, strFramThree = my_Config.Command_config.strFramThree }; break; //选择“帧尾”的时候 case 6: FrameTail = Add_config_cmb(comboBox2, FrameTail, list_FrameTail); command_config = new Command_config { strFrameHead = my_Config.Command_config.strFrameHead, strFrameTail = FrameTail, strFrameCheckCode = my_Config.Command_config.strFrameCheckCode, intFrameSequential = my_Config.Command_config.intFrameSequential, strFrameData = my_Config.Command_config.strFrameData, strFrameCommand = my_Config.Command_config.strFrameCommand, strFrameOne = my_Config.Command_config.strFrameOne, strFramTwo = my_Config.Command_config.strFramTwo, strFramThree = my_Config.Command_config.strFramThree }; break; //选择“预留1”的时候 case 7: FrameOne = Add_config_cmb(comboBox2, FrameOne, list_FrameOne); command_config = new Command_config { strFrameHead = my_Config.Command_config.strFrameHead, strFrameTail = my_Config.Command_config.strFrameTail, strFrameCheckCode = my_Config.Command_config.strFrameCheckCode, intFrameSequential = my_Config.Command_config.intFrameSequential, strFrameData = my_Config.Command_config.strFrameData, strFrameCommand = my_Config.Command_config.strFrameCommand, strFrameOne = FrameOne, strFramTwo = my_Config.Command_config.strFramTwo, strFramThree = my_Config.Command_config.strFramThree }; break; //选择“预留2”的时候 case 8: FramTwo = Add_config_cmb(comboBox2, FramTwo, list_FrameTwo); command_config = new Command_config { strFrameHead = my_Config.Command_config.strFrameHead, strFrameTail = my_Config.Command_config.strFrameTail, strFrameCheckCode = my_Config.Command_config.strFrameCheckCode, intFrameSequential = my_Config.Command_config.intFrameSequential, strFrameData = my_Config.Command_config.strFrameData, strFrameCommand = my_Config.Command_config.strFrameCommand, strFrameOne = my_Config.Command_config.strFrameOne, strFramTwo = FramTwo, strFramThree = my_Config.Command_config.strFramThree }; break; //选择“预留3”的时候 case 9: FramThree = Add_config_cmb(comboBox2, FramThree, list_FramThree); command_config = new Command_config { strFrameHead = my_Config.Command_config.strFrameHead, strFrameTail = my_Config.Command_config.strFrameTail, strFrameCheckCode = my_Config.Command_config.strFrameCheckCode, intFrameSequential = my_Config.Command_config.intFrameSequential, strFrameData = my_Config.Command_config.strFrameData, strFrameCommand = my_Config.Command_config.strFrameCommand, strFrameOne = my_Config.Command_config.strFrameOne, strFramTwo = my_Config.Command_config.strFramTwo, strFramThree = FramThree }; break; } //选项名称 command_name = Add_config_cmb(comboBox1, command_name, list_name, 6); //赋值config config = new My_config { Command_config = command_config, Serial_config = my_Config.Serial_config, Command_Name = command_name, List_Name = list_Name, List_Value = list_Value, CheckCode_value = my_Config.CheckCode_value }; //把config烧写进json文件 if (!WriteFile(config)) //调用WriteFile方法把配置写入json文件中 { MessageBox.Show("保存失败", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); } //写完数据后显示已经标记的颜色 for (int i = 0; i < listview_check_value.Count; i++) { if (listview_check_value[i] != null) { this.listView1.Items[0].SubItems[i + 1].BackColor = Color.Aqua; } } }