Получить измененную ширину столбцов в C #, чтобы сохранить значения и восстановить их - PullRequest
0 голосов
/ 28 сентября 2018

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

Мой другой вопрос о том, как получить имя столбца по определенному индексу.

1 Ответ

0 голосов
/ 04 октября 2018

Хорошо, я нашел решение, и поскольку никто не ответил на мой вопрос, я хочу поделиться тем, как я это сделал.

Добавить обработчик события "ColumnWidthChanged":

this.listView1.ColumnWidthChanged += new System.Windows.Forms.ColumnWidthChangedEventHandler(this.listView1_ColumnWidthChanged);

ДобавитьСобытие «ColumnWidthChanged» для проверки ширины столбцов после изменения любого из них.Затем создайте строку и сохраните в ней ширину столбцов с их именами.

private void listView1_ColumnWidthChanged(object sender, ColumnWidthChangedEventArgs e)
            {      
                StringBuilder widths = new StringBuilder();
                widths.Clear();

                for (int i = 0; i < listView1.Columns.Count; i++)
                {
                    int columnWide = listView1.Columns[i].Width;
                    string columnName = listView1.Columns[i].Text;
                    widths.Append(columnName + ":" + columnWide.ToString() + "#");
                }
                string line= widths.ToString(); 
            }

Результат будет следующим: column1: xx # column2: xx # column3: xx ...

Теперь вы можете сохранить эту строку в файл, чтобы иметь возможность получать и восстанавливать размеры при следующем запуске приложения.Вы можете легко извлечь и использовать значения с помощью line.Split ('#'), чтобы установить размеры столбцов при следующем запуске приложения.

...