C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: dataGridViewについて


(過去ログ 123 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■73694 / inTopicNo.1)  dataGridViewについて
  
□投稿者/ 一 (1回)-(2014/10/23(Thu) 14:20:51)

分類:[C#] 

2014/10/23(Thu) 14:22:13 編集(投稿者)
2014/10/23(Thu) 14:22:01 編集(投稿者)



開発環境: Visual C# 2010 Windows フォーム アプリケーション

dataGridViewにてリストを表示させているのですが
処理が終わったらリストが一気に表示される感じで1ループが終わるごとに表示をしたいのですが・・
アドバイスよろしくお願いします。

private void button1_Click(object sender, EventArgs e)
{

for (int i = 0; i <= 30000; i++){
String hoge = String.Format("{0:D}", i);
this.dataGridView1.Rows.Add(hoge);
}

}
引用返信 編集キー/
■73696 / inTopicNo.2)  Re[1]: dataGridViewについて
□投稿者/ WebSurfer (365回)-(2014/10/23(Thu) 15:28:39)
No73694 (一 さん) に返信

試したわけではなく想像ですが、実際には一行ずつ増えていっているが瞬間的に
終わるので「処理が終わったらリストが一気に表示される感じ」になるというこ
とではないのですか?

ハズレだったら失礼しました。
引用返信 編集キー/
■73697 / inTopicNo.3)  Re[2]: dataGridViewについて
□投稿者/ 一 (2回)-(2014/10/23(Thu) 15:47:09)
No73696 (WebSurfer さん) に返信

はい、そうです。
リスト数が少ないうちはいいのですが10万だとか多い数値になると
リストには何も表示されておらず、1分くらいたつと表示されます。
それで一行づつ表示したいと思いまして。。。
引用返信 編集キー/
■73698 / inTopicNo.4)  Re[3]: dataGridViewについて
□投稿者/ Hongliang (243回)-(2014/10/23(Thu) 16:08:58)
BackgroundWorkerなりで別スレッドでループを回すようにして、Rows.AddをすべてDataGridView::Invokeで呼び出すようにすればある程度はそんな感じになりますが……。

それよりも、DataGridView::Rows::Addで行を追加していくのではなく、DataSourceを使うようにしてやれば、そもそも10万行ぐらいでもほぼ一瞬で表示できるようになりますよ。
// 10万行表示して誰が見るんだよって話もありますが。
引用返信 編集キー/
■73699 / inTopicNo.5)  Re[3]: dataGridViewについて
□投稿者/ @ (1回)-(2014/10/23(Thu) 16:09:14)
ループ内で
this.dataGridView1.Update();
引用返信 編集キー/
■73700 / inTopicNo.6)  Re[4]: dataGridViewについて
□投稿者/ 一 (3回)-(2014/10/23(Thu) 16:29:18)
No73698 (Hongliang さん) に返信
> BackgroundWorkerなりで別スレッドでループを回すようにして、Rows.AddをすべてDataGridView::Invokeで呼び出すようにすればある程度はそんな感じになりますが……。

ありがとうございます。
調べてみます。

> それよりも、DataGridView::Rows::Addで行を追加していくのではなく、DataSourceを使うようにしてやれば、そもそも10万行ぐらいでもほぼ一瞬で表示できるようになりますよ。
> // 10万行表示して誰が見るんだよって話もありますが。

アドバイスありがとうございます。
表示する文字列をリスト化するみたいな考え方でしょうか
listに文字列郡を格納して表示みたいな^^;
調べてみます。

No73699 (@さん) に返信

こちらはすぐ組み込んでみたらたしかになりました。
アドバイスありがとうございます。




引用返信 編集キー/
■73701 / inTopicNo.7)  Re[5]: dataGridViewについて
□投稿者/ PANG2 (43回)-(2014/10/23(Thu) 18:02:11)
一瞬ですね。

public class Hoge
{
public int key { get; set; }
public string name { get; set; }

public Hoge(int key, string name)
{
this.key = key;
this.name = name;
}
}

private void button1_Click(object sender, EventArgs e)
{
List<Hoge> list = new List<Hoge>();
for (int i = 0; i <= 30000; i++) {
Hoge hoge = new Hoge(i, String.Format("{0:000000}", i));
list.Add(hoge);
}
dataGridView1.DataSource = list;
}
引用返信 編集キー/
■73709 / inTopicNo.8)  Re[6]: dataGridViewについて
□投稿者/ 一 (4回)-(2014/10/24(Fri) 02:42:23)
No73701 (PANG2 さん) に返信

はぇぇぇ。。。驚きました。。
調べていたのですがまだまだ勉強不足でよくわかってなかったんです。
例を提示していただいてありがとうございます。

書き換えてありがたく使わさせていただきます!!

返信していただけた方々、どうもありがとうございました。
また機会がありましたらよろしくお願いします。


解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -