Как заполнить несколько столбцов? - PullRequest
0 голосов
/ 14 октября 2019

Я работаю над системой «посещаемости» для школы, в которой я работаю. Я использую список для этого, но заметил, что просто не хватает места для размещения всех сотрудников в одном списке. Поэтому я хочу добавить второй столбец (или, по крайней мере, еще один «экземпляр» из трех используемых в настоящее время столбцов). Как мне справиться с такой работой?

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

См. Изображение ниже для визуального описания того, что я хочу получить;Я хочу, чтобы выходные данные сначала заполнили левую часть списка, а затем правую.

enter image description here

И это часть моего кода, которую(вероятно) о:

public void LoadEmployees()
{
    lvEmployees.View = View.Details;
    lvEmployees.GridLines = true;
    lvEmployees.Items.Clear();

    List<Employees> data = database.LoadEmployees();

    for (int i = 0; i < data.Count; i++)
    {
        // Define the list items
        ListViewItem emp = new ListViewItem(data[i].Abbreviation);
        emp.SubItems.Add(data[i].Name);
        emp.SubItems.Add(data[i].Status);

        // Add the list items to the ListView
        lvEmployees.Items.Add(emp);
    }
}

1 Ответ

0 голосов
/ 14 октября 2019

С lvEmployees1 и lvEmployees2 (или влево / вправо), два ListView.
Мы можем просто разделить List<Employees> data пополам.

lvEmployees1.View = View.Details;
lvEmployees1.GridLines = true;
lvEmployees1.Items.Clear();

lvEmployees2.View = View.Details;
lvEmployees2.GridLines = true;
lvEmployees2.Items.Clear();

List<Employees> data = database.LoadEmployees();

int half = data.Count / 2;

for (int i = 0; i < data.Count; i++)
{
    // Define the list items
    ListViewItem emp = new ListViewItem(data[i].Abbreviation);
    emp.SubItems.Add(data[i].Name);
    emp.SubItems.Add(data[i].Status);

    if (i <= half)    lvEmployees1.Items.Add(emp);
    else              lvEmployees2.Items.Add(emp);
}

Для создания второго«Сетка», вы можете просто скопировать мимо элемента в дизайнере.

...