Как скрыть столбец в элементе управления ListView?
как я могу скрыть столбец в ListView
управление, без настройка колонки Width
свойство 0
?
кроме того, я могу заблокировать Width
колонки?
8 ответов
не очень ясно, что здесь имеет значение C++Cli
тег, но:
Я предполагаю, что если вы говорите о Столбцах в ListView
, ты в деталях управления. Нет встроенного способа Скрыть / показать столбец в ListView
, насколько мне известно, поэтому одним из решений может быть просто удаление этого столбца формы UI.
чтобы сделать это самым гладким способом, просто позвоните своему ListView
код регенерации столбца между
listView.SuspendLayout(true);
/*Manipulate column here*/
listView.ResumeLayout();
данные, которые видны на ListView
всегда остается "в ваших руках", поэтому на данный момент Вы решите показать столбец снова, просто покажите столбец и заполните ListView
снова.
надеюсь, что это помогает.
самый простой способ следующим образом, попробуйте этот фрагмент кода :
скрыть:
LVW.Columns.Item(0).Width = 0
показать еще раз:
LVW.Columns.Item(0).AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent)
может это поможет кому-то.
просто удалите столбец по индексу, который вы хотите:
listView1.Columns.RemoveAt(3);
когда вы хотите его обратно, просто вставьте его с свое имя:
listView1.Columns.Insert(3, "Column Name");
он вернется со своими значениями.
как Скрыть / показать столбцы listview
C#, .NET framework 3.5.
легко скрыть и показать столбцы в ListView, если вы используете ListView в "виртуальном режиме". В "виртуальном режиме" вы несете ответственность за заполнение listviewitems данными. Это позволяет поместить правильные данные в правильный столбец.
позвольте мне продемонстрировать: Создайте форму и добавьте элемент управления listview и элемент управления button. Добавить 3 столбца элемент управления ListView. Задайте для свойства " view "элемента управления listview значение"Details". Установите для свойства " VirtualMode "элемента управления listview значение"True". Задайте для свойства" VirtualListSize "элемента управления listview значение"100". Добавьте bool в форму:
private bool mblnShow = true;
добавьте событие "RetrieveVirtualItem" для элемента управления listview и добавьте следующий код:
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" для элемента управления button и добавьте следующий код:
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);
выполнить применение, и нажмите кнопку, чтобы показать и скрыть второй столбец.
обратите внимание, что запуск listview в виртуальном режиме вызовет ошибку, если вы поместите данные в коллекцию элементов. Существует гораздо больше знаний о виртуальном режиме, поэтому я предлагаю прочитать об этом перед его использованием.
Если вам нужно связать данные со строкой без ее отображения, используйтеTag свойства
перейдите к редактированию столбцов (в разделе свойства listview в режиме разработки), в разделе Разное установите ширину в ноль
Если у вас есть только один столбец, появляется второй пустой столбец, чтобы заполнить дополнительное пространство справа. Чтобы скрыть этот пустой столбец, реализуйте событие ListView resize. Там сделайте следующее.
m_lstItems.Columns[0].Width = m_lstItems.Width - 5;
это эффективно скроет дополнительный пустой столбец и вместо этого первый столбец займет все пространство в listview.
Я искал способ сделать то же самое, что привело меня сюда.
Я не уверен, если есть лучший способ сделать это, однако я использую следующий способ.
Если вам нужно добавить значение в Listview
элемент, но не хотите его показывать, вы можете использовать индекс подэлемента больше, чем общее количество столбцов. Таким образом, даже если значение существует, оно не видно