using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace VisualComponentsLib { public partial class MyDataGridView : UserControl { public MyDataGridView() { InitializeComponent(); } //публичный метод создания заголовков таблицы public void AddHeader(int countCol, List nameCol, List widthCol, List showCol, List nameField) { for (int i = 0; i < countCol; i++) { DataGridViewColumn textColumn = new DataGridViewColumn(); textColumn.Name = nameField[i]; textColumn.HeaderText = nameCol[i]; textColumn.Width = widthCol[i]; textColumn.Visible = showCol[i]; textColumn.CellTemplate = new DataGridViewTextBoxCell(); dataGridView.Columns.Add(textColumn); } } //публичный параметризованный метод для добавления нового объекта в список public void AddObject(T newObject) { DataGridViewRow row = (DataGridViewRow)dataGridView.Rows[0].Clone(); foreach (var prop in newObject.GetType().GetProperties()) { object value = prop.GetValue(newObject); row.Cells[dataGridView.Columns[prop.Name].Index].Value = value; } dataGridView.Rows.Add(row); } //полная очистка public void ClearTable() { dataGridView.Rows.Clear(); } public List ReturnName() { List res = new List(); foreach(var rov in dataGridView.Columns) { res.Add(rov.ToString()); } return res; } } }