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

わんくま同盟

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

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

■99521 / 親階層)  C#のDataGridView 動的に生成する場合
□投稿者/ 星は昴 (38回)-(2022/04/21(Thu) 15:04:27)

分類:[C#] 

 DataGridView に乱数を表示させようとしているのですが、何回クリックしても最初画面表示されたままです。DataGridView をフォームデザイナーで貼り付けたときは正常に動きます。
 なぜ動的に生成した DataGridView ではまずいのでしょうか?

private void btnTable_Click(object sender, EventArgs e)
{
    const int N = 10000;
    const int M = 5;
    double[,] A = new double[N, M];
    var Rand = new Random();
    var DataGrid = new DataGridView();
    var table = new DataTable();
    DataGrid.Parent = splitContainer1.Panel2;
    DataGrid.Dock = DockStyle.Fill;

    for (int i = 0; i < N; i++)
        for (int j = 0; j < M; j++)
            A[i, j] = (double)Rand.Next(1, 20);

    // DataGridViewのデータをクリア
    DataGrid.DataSource = null;
    DataGrid.Rows.Clear();
    DataGrid.Columns.Clear();

    //コラムヘッダー
    for (int j = 0; j < M; j++)
        table.Columns.Add("num" + j.ToString());

    // 行データの追加
    DataGrid.SuspendLayout(); // Layoutの実行を保留する
    for (int i = 0; i < N; i++)
    {
        var dr = table.NewRow();
        for (int j = 0; j < M; j++)
            dr[j] = A[i, j];
        table.Rows.Add(dr);
    }

    DataGrid.DataSource = table; // DataTableをDataGridViewにバインド
    DataGrid.ResumeLayout();  // 保留中のLayoutを再開する
    
    //Refresh() してもダメ!
    DataGrid.Refresh(); 
}

編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
親記事 →Re[1]: C#のDataGridView 動的に生成する場合 /魔界の仮面弁士
→Re[1]: C#のDataGridView 動的に生成する場合 /とっちゃん
 
上記関連ツリー

C#のDataGridView 動的に生成する場合 / 星は昴 (22/04/21(Thu) 15:04) #99521 ←Now
Re[1]: C#のDataGridView 動的に生成する場合 / 魔界の仮面弁士 (22/04/21(Thu) 17:29) #99526
Re[1]: C#のDataGridView 動的に生成する場合 / とっちゃん (22/04/21(Thu) 15:59) #99524
  └ Re[2]: C#のDataGridView 動的に生成する場合 / 星は昴 (22/04/21(Thu) 19:16) #99527 解決済み
    └ Re[3]: C#のDataGridView 動的に生成する場合 / 魔界の仮面弁士 (22/04/21(Thu) 19:42) #99528 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信