Как скрыть столбец в элементе управления ListView? - PullRequest
10 голосов
/ 18 октября 2011

Как скрыть столбец в элементе управления ListView, не задав для свойства Width столбца значение 0?

Кроме того, можно ли заблокировать Width столбца?

Ответы [ 8 ]

10 голосов
/ 09 августа 2014

Самый простой способ выполнить следующий фрагмент кода:

hide:

      LVW.Columns.Item(0).Width = 0

показать еще раз:

      LVW.Columns.Item(0).AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent)

может это кому-нибудь помочь.

4 голосов
/ 23 апреля 2013

Просто удалите столбец с нужным вам индексом:

listView1.Columns.RemoveAt(3);

, когда вы хотите его вернуть, просто вставьте его с его именем:

listView1.Columns.Insert(3, "Column Name");

Он вернется со своими значениями.

4 голосов
/ 18 октября 2011

Не очень понятно, что здесь имеет значение C++Cli тег, но:

Я полагаю, что если вы говорите о столбцах в ListView, вы подробно рассматриваете элемент управления. Насколько мне известно, в ListView нет встроенного способа столбца «Скрыть / Показать», поэтому одним из решений может быть просто удалить этот интерфейс из столбца.

Чтобы сделать это наиболее гладким способом, просто наберите ListView код регенерации столбца между

listView.SuspendLayout(true);

/*Manipulate column here*/

listView.ResumeLayout();

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

Надеюсь, это поможет.

3 голосов
/ 22 октября 2013

Если вам нужно связать данные со строкой без ее отображения, используйте свойство ListView Tag *

2 голосов
/ 26 июня 2012

Как скрыть / показать столбцы списка просмотра

C #, .NET Framework 3.5.

Легко скрыть и показать столбцы списка, если вы используете список в «виртуальном режиме». В «виртуальном режиме» вы несете ответственность за заполнение списка представлений данными. Это позволяет поместить правильные данные в правильный столбец.

Позвольте мне продемонстрировать: Создайте форму, добавьте элемент управления списком и элемент управления кнопки. Добавьте 3 столбца в элемент управления просмотра списка. Установите для свойства «view» элемента управления listview значение «Details». Установите для свойства «VirtualMode» элемента управления списком значение «True». Установите для свойства «VirtualListSize» элемента управления просмотра списка значение «100». Добавьте bool к форме:

private bool mblnShow = true;

Добавьте событие «RetrieveVirtualItem» для элемента управления списком и добавьте следующий код:

ListViewItem objListViewItem = new ListViewItem();
objListViewItem.Text = "Item index: " + e.ItemIndex.ToString();
if (mblnShow) objListViewItem.SubItems.Add("second column: " +     DateTime.Now.Millisecond.ToString());
objListViewItem.SubItems.Add("third column: " + DateTime.Now.Millisecond.ToString());
e.Item = objListViewItem;

Добавьте событие «Click» для кнопки управления и добавьте следующий код:

mblnShow = !mblnShow;
if (mblnShow && !this.listView1.Columns.Contains(this.columnHeader2))   this.listView1.Columns.Insert(1, this.columnHeader2);
else if (!mblnShow && this.listView1.Columns.Contains(this.columnHeader2))
    this.listView1.Columns.Remove(this.columnHeader2);

Запустите приложение и нажмите кнопку, чтобы отобразить и скрыть второй столбец.

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

0 голосов
/ 08 августа 2018

Я искал способ сделать то же самое, что привело меня сюда.

Я не уверен, есть ли лучший способ сделать это, однако я использую следующий обходной путь.

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

0 голосов
/ 20 февраля 2018

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

m_lstItems.Columns[0].Width = m_lstItems.Width - 5;

Это эффективно скроет лишний пустой столбец и вместо этого первый столбец займет все пространство в списке.

0 голосов
/ 17 октября 2014

Перейти к редактированию столбцов (в свойствах списка в режиме конструктора), в разделе Разное установите для ширины значение Ноль

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...