Домой Component Сохранение настроек расположения и ширины колонок в компоненте datagridview.: Справочник по C#

Сохранение настроек расположения и ширины колонок в компоненте datagridview.: Справочник по C#

821
0


      В данной статье рассмотрено создание методов сохранения и восстановления расположения и ширины колонок в элементе управления datagridview.
      Создайте проект «Windows Form» в «Microsoft Visual Studio», для этого откройте Microsoft Visual Studio 2010 и перейдите в меню: файл -> создать проект…

      В открывшемся окне «Создать проект» в правой части «установленные шаблоны» выберете раздел Visual C# и подраздел Windows. Из предложенных шаблонов выберете «Приложение Windows Form». В нижней части окна введите имя вашего проекта и его расположение на вашем компьютере. После выполнения этих действий нажимаете кнопку «ОК» для выполнения процесса создания нового проекта. По завершению создания проекта у вас откроется главная форма вашего проекта.

добавьте компонент DataGridView на форму, для этого перейдите в меню: Вид -> панель элементов.

      В правой части программы вы увидите новую панель с заголовком «Панель элементов». Найдите компонент DataGridView, сделайте клик левой клавишей мыши по компоненту и затем также клик левой клавишей мыши по вашей форме открытой при создании проекта.

      Вы увидите размещенный компонент на форме, нажмите правой клавишей мыши по компоненту и выберете пункт «Свойства», из открывшегося контекстного меню.

      У вас откроется окно со свойствами выбранного элемента управления, найдите свойство Dock и выберете вариант размещения компонента на форме Fill, данный параметр растягивает элемент управления на все рабочее пространство формы.

      Выполните двойной щелчок левой клавишей мыши по заголовку формы.

      У вас откроется новая вкладка с редактором кода вашей формы и методом Form1_Load, события Load, которое возникает каждый раз при запуске вашего проекта. Вставьте приведенный ниже код в тело данного метода, выполняющий заполнение тестовыми данными элемента управления «dataGridView».

private void Form1_Load(object sender, EventArgs e)
{
//Инициализируем новый экземпляр класса System.Data.DataTable и передаем
//ему аргументы.
DataTable dt = new DataTable();
//Создаем и добавляем объект System.Data.DataColumn с указанным именем
dt.Columns.Add("Name");
dt.Columns.Add("Telephone");
dt.Columns.Add("City");
dt.Columns.Add("Country");
dt.Columns.Add("Adress");
//Задаем источник данных, для которого объект
//System.Windows.Forms.DataGridView отображает данные.
dataGridView1.DataSource = dt;

//Задаем текст, используемый для подсказок.
dataGridView1.Columns[0].ToolTipText = "Имя пользователя";
dataGridView1.Columns[1].ToolTipText = "Телефонный номер пользователя";

//Задаем текст ячейки заголовка столбца.
dataGridView1.Columns[0].HeaderText = "Имя";
dataGridView1.Columns[1].HeaderText = "Телефон";
dataGridView1.Columns[2].HeaderText = "Город";
dataGridView1.Columns[3].HeaderText = "Страна";
dataGridView1.Columns[4].HeaderText = "Адрес";
SetColumnOrder(dataGridView1);
}

      Для просмотра созданных колонок (столбцов) запустите проект, нажав на клавиатуре клавишу F5.

      Далее необходимо создать новый класс в проекте, для этого в обозревателе решений сделайте клик правой клавишей мыши по названию вашего проекта и выберете из открывшегося контекстного меню, пункт Добавить-> Создать элемент…

      У вас откроется новое окно «Создать элемент…» в котором выберете шаблон «Класс», задайте ему имя и нажмите кнопку «Добавить».

У вас откроется новая вкладка:

Удалите класс Settings и замените его два класса представленных ниже:

internal sealed class DataGridViewSetting : ApplicationSettingsBase
{
private static DataGridViewSetting _defaultInstace =
(DataGridViewSetting)ApplicationSettingsBase.Synchronized(new DataGridViewSetting());

public static DataGridViewSetting Default
{
get { return _defaultInstace; }
}

[UserScopedSetting]
[SettingsSerializeAs(SettingsSerializeAs.Binary)]
[DefaultSettingValue("")]

public Dictionary<string, List<columnorderitem>> ColumnOrder
{
get { return this["ColumnOrder"] as Dictionary<string, List<columnorderitem>>; }
set { this["ColumnOrder"] = value; }
}
}

[Serializable]
public sealed class ColumnOrderItem
{
public int DisplayIndex { get; set; }
public int Width { get; set; }
public bool Visible { get; set; }
public int ColumnIndex { get; set; }
}

Теперь переходим в код главного приложения и добавляем два метода, первый на сохранение, второй на загрузку настроек.

private void SaveColumnOrder(DataGridView name)
{
if (name.AllowUserToOrderColumns)
{
List<columnorderitem> columnOrder = new List<columnorderitem>();
DataGridViewColumnCollection columns = name.Columns;
for (int i = 0; i  i.DisplayIndex);
foreach (var item in sorted)
{
name.Columns[item.ColumnIndex].DisplayIndex = item.DisplayIndex;
name.Columns[item.ColumnIndex].Visible = item.Visible;
name.Columns[item.ColumnIndex].Width = item.Width;
}
}
}

      Добавьте их вызов при запуске проекта и при его закрытии. Пример загрузки сохраненных настроек представлен ниже:

SetColumnOrder(dataGridView1);

Так же делаете и для сохранения.

Ссылка для скачивания примера: Яндекс.Диск

Сохранение настроек расположения и ширины колонок в компоненте datagridview.: Справочник по C#

0.00 (0%) 0 votes

ЧИТАТЬ ТАКЖЕ:  Отслеживание и получение количества непрочитанных сообщений в Microsoft Outlook: Справочник по C#

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь