| 分類:[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(); }
|