2017-04-16 13 views
1

テキストファイルのデータを表示するためのdatagridviewがあります。次に、テキストファイル上のコンテンツを削除するボタンを持っています(0バイトに戻します)。ソースファイルを削除した後にデータグリッドが変更されない

しかし、なぜボタンをクリックしてイベントを実行すると、.refresh()機能を使用してもデータグリッドが更新されません。ここに私のコードは、ファイルのテキストの内容を削除するボタンです。

private void button1_Click(object sender, EventArgs e) 
{ 
     File.WriteAllText("Transaction.txt", String.Empty); 
     dataGridView1.Refresh(); 
} 

PS:DataGridViewのが唯一の再起動後にWindowsフォーム(もちろん空の)変化するであろう。

+0

再バインドする必要があります。 'BindingSource'を使わない限り、グリッドはデータと自動的には同期しません。また、テキストファイルでそれを行うには、何らかの種類の列挙型でファイルアクセスをラップする必要があります。 – Crowcoder

+0

DataGridViewにデータをロードする方法を表示しますか?少なくとも、ファイルを読み込んでデータを再度読み込む必要があります。 – Fabio

+0

こんにちは@iMar私はあなたの問題を解決したかどうかは不思議です。 – Anthony

答えて

0

あなたのDataGridViewにデータをバインドするBindingListクラスが必要になります。

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. 
} 
関連する問題