我有一个来自Text文件的显示数据的datagridview。然后,我有一个按钮,它具有删除文本文件内容的功能(将其返回到0字节)。
但是为什么事件执行(通过单击按钮),即使使用.refresh()
函数,数据网格也不会刷新。这是删除文件文本内容的按钮代码。
private void button1_Click(object sender, EventArgs e)
{
File.WriteAllText("Transaction.txt", String.Empty);
dataGridView1.Refresh();
}
PS:只有在重新启动Windows窗体后,datagridview才会改变(当然是空的。)
答案 0 :(得分:0)
您需要BindingList
类将数据绑定到datagridview:
var _bindingList = new BindingList<string>();
在你的表单构造函数中:
public MyForm
{
InitializeComponent();
myDataGridView.BindingSource = _bindingList;
}
创建一个计时器来监控文件的更改:
DateTime lastWriteTime = DateTime.Now
private void timer_tick(object sender, EventArgs e)
{
FileInfo f = new FileInfo("C:\\myFile.txt");
if ( lastWriteTime == f.LastWriteTime) return;
lastWriteTime = f.LastWriteTime;
UpdateBindingList();
}
private void UpdateBindingList()
{
_bindingList.Clear();
//then read the file and add items to _bindingList.
}