我有下一个代码,当选择checkbox
中的checkedListBox
时,他们想要更改文本文件中的行。代码工作,但只是为了一些行,我不明白是什么原因,因为不适合所有人。
private void checkedListBox2_SelectedIndexChanged(object sender, EventArgs e)
{
string installerfilename = string.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "installer.ini");
IEnumerable<string> inilines = File.ReadAllLines(installerfilename).AsEnumerable();
string selectedItem = checkedListBox2.SelectedItem.ToString();
bool IsChecked = checkedListBox2.CheckedItems.Contains(selectedItem);
//bool IsChecked2 = inilines.Contains("#product=");
if (IsChecked)
inilines = inilines.Select(line => line == string.Format("#product={0}", selectedItem)
? Regex.Replace(line, string.Format("#product={0}", selectedItem), string.Format(@"product={0}", selectedItem))
: line);
else
inilines = inilines.Select(line => (line == string.Format("#product={0}", selectedItem) || line == string.Format(@"product={0}", selectedItem))
? Regex.Replace(line, string.Format(@".*product={0}", selectedItem), string.Format(@"#product={0}", selectedItem))
: line);
string strWrite = string.Join(Environment.NewLine, inilines.ToArray());
File.WriteAllText(installerfilename, strWrite);
}
在下一行中不能正常工作的示例: 当在checkedListBox上检查通信工具箱,通信模块组,通信工具箱时,在installer.ini中我有下一个更改:
#product=Aerospace Toolbox => product=Aerospace Toolbox
#product=Communications Blockset => product=Communications Blockset
#product=Communications Toolbox => remain the same #product=Communications Toolbox
任何人都可以帮助我吗?
答案 0 :(得分:1)
我会更改以下内容
string selectedItem = checkedListBox2.SelectedItem.ToString();
bool IsChecked = checkedListBox2.CheckedItems.Contains(selectedItem);
带
bool IsChecked = checkedListBox2.CheckedItems.Contains(checkedListBox2.SelectedItem);