protected void InitDataGridView() { gridView.Columns.Clear(); gridView.Refresh(); dt = controllerData.ReadData(nameTable); DataGridViewColumn[] columns = { }; foreach (DataColumn item in dt.Columns) { DataGridViewTextBoxColumn column = new DataGridViewTextBoxColumn(); column.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; column.DataPropertyName = item.ColumnName; column.HeaderText = listNameTable.ContainsKey(item.ColumnName) ? listNameTable[item.ColumnName] : item.ColumnName; column.Name = item.ColumnName; column.ReadOnly = true; columns = columns.Concat(new DataGridViewColumn[] { column }).ToArray(); } gridView.Columns.AddRange(columns); gridView.DataSource = dt; gridView.Location = hasLabelList ? new Point(0, labelList.ElementAt(labelList.Count - 1).Value.Location.Y + labelList.ElementAt(labelList.Count - 1).Value.Height + 50) : new Point(0, 100); gridView.Size = new Size(1000, 200); gridView.Name = "Data Table"; gridView.ReadOnly = true; gridView.CellClick += Binding_Data; form.Controls.Add(gridView); if (dt.Rows.Count > 0) { for (int i = 0, j = 0; i < textList.Count && j < gridView.ColumnCount; i++, j++) { textList.ElementAt(i).Value.Text = dt.Rows[0].ItemArray[j].ToString(); } } }