|
分類:[.NET 全般]
はじめまして、さおりと言います。
どうしても解決できない所がありみなさんの知恵をかりたいとおもい 投稿させて頂きました。
[処理の内容] BackgroundWorkerを使い(読み込みファイルが多い為)、ファイルを読込み、datagridviewに表示。
ファイルの内容をグリッドにセットしなければグリッドにちゃんと行が 追加され、正常に表示されるのですが。
GridView.Rows[r].Cells[0].Value = dat.ToString();
を追加して、値をグリッドにセットしようとすると エラーが表示されてしまいます。
解決方法がありましたら、よろしくお願いします。
private void bgWorker_DoWork(object sender, DoWorkEventArgs e) { string strFileName = (string)e.Argument; StreamReader sr = new StreamReader(strFileName, System.Text.Encoding.GetEncoding("Shift_JIS")); while ((dat = sr.ReadLine()) != null) { //グリッドに行追加 Thread t = new Thread(new ThreadStart(AddRow)); t.Start(); //ここでエラー:列の追加が上手くいっていない為、 //インデックス範囲外のエラーが表示されます。 GridView.Rows[r].Cells[0].Value = dat.ToString();
}
}
delegate int FocusDelegate();
private void AddRow() { Invoke(new FocusDelegate(GridView.Rows.Add)); }
|