/// <summary> /// 保存数据列可见性 /// </summary> /// <param name="cfgFile">配置文件</param> /// <param name="dgvName">数据表名</param> /// <param name="visibility">数据列可见性</param> public static void SaveColumnVisibility(string cfgFile, string dgvName, Dictionary <string, bool> visibility) { //转换为字符串 string result = ""; foreach (string key in visibility.Keys) { result += key + "|" + visibility[key].ToString().ToUpper() + ";"; } //保存配置 IniOperate.CF_WriteConfig(cfgFile, "DataGridView", dgvName, result); }
/// <summary> /// INI文件操作测试 /// </summary> private void IniFileOperateTest() { string iniPath = Path.Combine(Environment.CurrentDirectory, "TestConfig.ini"); PrintLogLn(MsgType.Info, $"INI文件路径: {iniPath}"); PrintLogLn(MsgType.Warn, "静态方法测试!"); string value0 = GetRandomString(10); PrintLogLn(MsgType.Info, $"生成随机字符串: {value0}"); IniOperate.CF_WriteConfig(iniPath, "TestSection", "StringKey", value0.ToString()); PrintLogLn(MsgType.Info, $"写入配置: TestSection->StringKey -> {value0}"); string result0 = IniOperate.CF_ReadConfig(iniPath, "TestSection", "StringKey"); PrintLogLn(MsgType.Info, $"读取配置: TestSection->StringKey -> {result0}"); if (value0 == result0) { PrintLogLn(MsgType.Success, $"写入值与读取值比对成功!"); } else { PrintLogLn(MsgType.Error, $"写入值与读取值比对失败!"); } double value1 = Math.Round(new Random().NextDouble(), 10); PrintLogLn(MsgType.Info, $"生成随机小数: {value1}"); IniOperate.CF_WriteConfig <double>(iniPath, "TestSection", "DoubleKey", value1); PrintLogLn(MsgType.Info, $"写入配置: TestSection->DoubleKey -> {value1}"); double result1 = IniOperate.CF_ReadConfig <double>(iniPath, "TestSection", "DoubleKey"); PrintLogLn(MsgType.Info, $"读取配置: TestSection->DoubleKey -> {result1}"); if (value1 == result1) { PrintLogLn(MsgType.Success, $"写入值与读取值比对成功!"); } else { PrintLogLn(MsgType.Error, $"写入值与读取值比对失败!"); } ETest value2 = (ETest) new Random().Next(1, 6); PrintLogLn(MsgType.Info, $"生成随机枚举值: {value2}"); IniOperate.CF_WriteConfig <ETest>(iniPath, "TestSection", "EnumKey", value2); PrintLogLn(MsgType.Info, $"写入配置: TestSection->EnumKey -> {value2}"); ETest result2 = IniOperate.CF_ReadConfig <ETest>(iniPath, "TestSection", "EnumKey"); PrintLogLn(MsgType.Info, $"读取配置: TestSection->EnumKey -> {result2}"); if (value2 == result2) { PrintLogLn(MsgType.Success, $"写入值与读取值比对成功!"); } else { PrintLogLn(MsgType.Error, $"写入值与读取值比对失败!"); } PrintLogLn(MsgType.Warn, "动态方法测试!"); IniOperate iniOperate = new IniOperate(iniPath); value0 = GetRandomString(10); PrintLogLn(MsgType.Info, $"生成随机字符串: {value0}"); iniOperate.CF_WriteConfig("TestSection", "StringKey", value0.ToString()); PrintLogLn(MsgType.Info, $"写入配置: TestSection->StringKey -> {value0}"); result0 = iniOperate.CF_ReadConfig("TestSection", "StringKey"); PrintLogLn(MsgType.Info, $"读取配置: TestSection->StringKey -> {result0}"); if (value0 == result0) { PrintLogLn(MsgType.Success, $"写入值与读取值比对成功!"); } else { PrintLogLn(MsgType.Error, $"写入值与读取值比对失败!"); } value1 = Math.Round(new Random().NextDouble(), 10); PrintLogLn(MsgType.Info, $"生成随机小数: {value1}"); iniOperate.CF_WriteConfig("TestSection", "DoubleKey", value1); PrintLogLn(MsgType.Info, $"写入配置: TestSection->DoubleKey -> {value1}"); result1 = iniOperate.CF_ReadConfig <double>("TestSection", "DoubleKey"); PrintLogLn(MsgType.Info, $"读取配置: TestSection->DoubleKey -> {result1}"); if (value1 == result1) { PrintLogLn(MsgType.Success, $"写入值与读取值比对成功!"); } else { PrintLogLn(MsgType.Error, $"写入值与读取值比对失败!"); } value2 = (ETest) new Random().Next(1, 6); PrintLogLn(MsgType.Info, $"生成随机枚举值: {value2}"); iniOperate.CF_WriteConfig("TestSection", "EnumKey", value2); PrintLogLn(MsgType.Info, $"写入配置: TestSection->EnumKey -> {value2}"); result2 = iniOperate.CF_ReadConfig <ETest>("TestSection", "EnumKey"); PrintLogLn(MsgType.Info, $"读取配置: TestSection->EnumKey -> {result2}"); if (value2 == result2) { PrintLogLn(MsgType.Success, $"写入值与读取值比对成功!"); } else { PrintLogLn(MsgType.Error, $"写入值与读取值比对失败!"); } List <string> sections = iniOperate.CF_ReadSections(); PrintLogLn(MsgType.Info, $"读取节点个数:{sections.Count}"); PrintLog(MsgType.Info, $"读取节点:"); foreach (string section in sections) { PrintMsg(MsgType.Info, $"{section};"); } PrintMsgLn(MsgType.Info, ""); List <string> keys = iniOperate.CF_ReadKeys("TestSection"); PrintLogLn(MsgType.Info, $"读取键名个数:{keys.Count}"); PrintLog(MsgType.Info, $"读取键名:"); foreach (string key in keys) { PrintMsg(MsgType.Info, $"{key};"); } PrintMsgLn(MsgType.Info, ""); File.Delete(iniPath); }