我有一个表单,按钮和usercontrols加载每个按钮。
1.在其中一个用户控件中有一个Listbox,用于从文本文件加载项目。在这里,您还可以添加新项目,这些项目会更新列表框和文本文件。
问题:从UserControl转到UserControl时,它不会在任何更改后从文本文件刷新/更新列表框或checkedlistbox。
期望:每当表单或任何用户控件处于活动状态时,它都应自动从文本文件更新/刷新其数据。
这会将第一个UC(1)中的文本文件加载到列表框中。
private void ucAddNewPerson_Load(object sender, EventArgs e)
{
System.IO.StreamReader ReadFile = new System.IO.StreamReader(@"D:\Projects\APPAR\Budget app\PersonList.txt");
string line;
while ((line = ReadFile.ReadLine()) != null)
{
PersonListBox.Items.Add(line);
}
ReadFile.Close();
if (ReadFile == null)
{
PersonListBox.Items.Clear();
}
}
有没有办法让它自动加载更改或我是否必须添加刷新按钮来解决这个问题?
提前致谢!
看一下FileSystemWatcher类。它会在文件更改时生成事件,此时您可以重新加载控件。代码看起来像这样:
public void watchFile()
{
var watcher = new FileSystemWatcher(@"D:\Projects\APPAR\Budget app\", "PersonList.txt")
{
NotifyFilter = NotifyFilters.LastWrite
};
watcher.Changed += (sender, args) => RefreshControl(this);
}