Создайте проект «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 < columns.Count; i++)
{
columnOrder.Add(new ColumnOrderItem
{
ColumnIndex = i,
DisplayIndex = columns[i].DisplayIndex,
Visible = columns[i].Visible,
Width = columns[i].Width
});
}
DataGridViewSetting.Default.ColumnOrder[this.Name] = columnOrder;
DataGridViewSetting.Default.Save();
}
}
private void SetColumnOrder(DataGridView name)
{
if (!DataGridViewSetting.Default.ColumnOrder.ContainsKey(this.Name))
return;
List<ColumnOrderItem> columnOrder =
DataGridViewSetting.Default.ColumnOrder[this.Name];
if (columnOrder != null)
{
var sorted = columnOrder.OrderBy(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);Так же делаете и для сохранения.
Ссылка для скачивания примера: Яндекс.Диск













Комментариев нет:
Отправить комментарий
Большая просьба, не писать в комментариях всякую ерунду не по теме!