嗨,我想在我的listBox中加载文件路径。 一切都好 我只是有一个问题,当我关闭应用程序然后再次打开它时 加载的文件位于一个通道中,它将它们识别为listBox中的一项 我尝试使用“ \ n”,“ \ r”这些都不是... 那么你们的建议是什么? (我将用户更改保存在“应用设置”中,以供日后阅读)
private void Form1_Load(object sender, EventArgs e)
{
if (Properties.Settings.Default.FileList != string.Empty)
{
fileListBox.Items.Add(Properties.Settings.Default.FileList);
}
UnlockForm f2 = new UnlockForm();
if (Properties.Settings.Default.PasswordCheck == true)
f2.ShowDialog();
else
return;
}
private void button1_Click_1(object sender, EventArgs e)
{
op = new OpenFileDialog();
op.Title = "Select your stuff";
op.Filter = "All files (*.*)|*.*";
if (op.ShowDialog() == DialogResult.OK)
{
fileName = op.FileName;
fileListBox.Items.Add(fileName);
}
Properties.Settings.Default.FileList += fileName+"\n";
Properties.Settings.Default.Save();
}
答案 0 :(得分:1)
在设置设计器中创建属性时:
Files
System.Collections.Specialized.StringCollection
User
Value
单元格中使用 ... 来编辑默认值。然后,您可以轻松地将其设置为DataSource
中的ListBox
。
listBox1.DataSource = Properties.Settings.Default.Files;
还可以添加一些值:
Properties.Settings.Default.Files.Add("something");
Properties.Settings.Default.Save();
如果您向Files
添加了一些内容,如果希望ListBox
显示更改,请将DataSource
设置为null,然后再次设置为Files
。
答案 1 :(得分:0)
似乎您已在“应用程序设置”中将FileList定义为String。有两种方法可以解决此问题。
a)使用FileList作为集合。
您可以在“应用程序设置”中将“文件列表的类型”更改为StringCollection。然后,您可以按以下步骤将项目添加到列表中
reviver
b)使用FileList作为字符串。
如果您确实想将Properties.Settings.Default.FileList保留为字符串,则需要在运行时使用分隔符将其拆分(假设为';')
const whitelist = ['prop1', 'prop2', 'result'];
const reviver = (key, value) => {
if (key === '' || whitelist.includes(key)) {
return value;
} else {
return undefined; // explicitly delete the entry
}
};
const theMightyJsonString = '{ "result": { "prop1": "Greetings", "prop2": "Hello", "prop3": "WASSUP!!!!" } }';
console.log(JSON.parse(theMightyJsonString))
console.log(JSON.parse(theMightyJsonString, reviver))
在您的情况下,除非您在OP的范围之外有使用字符串的特殊原因,否则收集可能是更好的方法。