58 lines
1.7 KiB
C#
58 lines
1.7 KiB
C#
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<string> nameCol, List<int> widthCol,
|
|
List<bool> showCol, List<string> nameField)
|
|
{
|
|
for (int i = 0; i < countCol; i++)
|
|
{
|
|
DataGridViewColumn textColumn = new DataGridViewColumn();
|
|
|
|
textColumn.Name = nameCol[i];
|
|
textColumn.HeaderText = nameField[i];
|
|
textColumn.Width = widthCol[i];
|
|
textColumn.Visible = showCol[i];
|
|
textColumn.CellTemplate = new DataGridViewTextBoxCell();
|
|
|
|
dataGridView.Columns.Add(textColumn);
|
|
}
|
|
}
|
|
|
|
//публичный параметризованный метод для добавления нового объекта в список
|
|
public void AddObject<T>(T newObject)
|
|
{
|
|
DataGridViewRow row = new DataGridViewRow();
|
|
|
|
foreach (var prop in newObject.GetType().GetProperties())
|
|
{
|
|
row.Cells[prop.ToString()].Value = prop.GetValue(newObject);
|
|
}
|
|
|
|
dataGridView.Rows.Add(row);
|
|
}
|
|
|
|
//полная очистка
|
|
public void ClearTable()
|
|
{
|
|
dataGridView.Rows.Clear();
|
|
}
|
|
}
|
|
}
|