Скрыть идентификатор столбца в элементе управления ListView - PullRequest
6 голосов
/ 22 августа 2010

Я связываю элемент управления ListView с DataTable. В DataTable есть столбец с именем ProductID. Есть ли способ скрыть этот столбец, потому что мне понадобится его значение позже?

Ответы [ 2 ]

13 голосов
/ 22 августа 2010

Я просто расскажу об угле интерфейса.Вы можете скрыть это, установив ширину столбца в 0. Например, если идентификатор привязан ко 2-му столбцу:

public partial class Form1 : Form {
    public Form1() {
        InitializeComponent();
        listView1.Columns[1].Width = 0;
        listView1.ColumnWidthChanging += listView1_ColumnWidthChanging;
    }

    private void listView1_ColumnWidthChanging(object sender, ColumnWidthChangingEventArgs e) {
        if (e.ColumnIndex == 1) {
            e.NewWidth = 0;
            e.Cancel = true;
        }
    }
}

Это не совсем идеально, пользователь может запутаться при помощи курсора «сплиттер»это проявляется, когда она находится слишком далеко справа от разделителя столбцов.Это очень трудно исправить.

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);

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

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

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