Изменить размер ListView в зависимости от количества элементов? - PullRequest
0 голосов
/ 30 марта 2010

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

InvalidArgument = Значение «0» недопустимо для «индекса». Имя параметра: индекс.

Я использую код:

label14.Text = myListView1.SelectedItems[0].Text.ToString();

Я полагал, что удаление пространства под элементами решит эту проблему. Спасибо!

Ответы [ 3 ]

3 голосов
/ 30 марта 2010

Что нужно сделать, чтобы исправить ошибку, это проверить, нажал ли пользователь на элемент:

if (myListView1.SelectedItems.Count > 0) {
    label14.Text = myListView1.SelectedItems[0].Text.ToString();
}
0 голосов
/ 30 марта 2010

Aha. У меня это работает. Я использовал:

if (myListView1.SelectedItems.Count > 0)
        {
            label14.Text = myListView1.SelectedItems[0].Text.ToString();
        }

Это, похоже, сработало. Еще раз спасибо за помощь!

0 голосов
/ 30 марта 2010

Высота каждого элемента около 5-7 пикселей в зависимости от используемого шрифта / размера шрифта. Таким образом, вы можете просто сделать myListView1.Height = myListView1.Items.Count * itemHeight;

Чтобы удалить пустые элементы списка, вы можете перебрать и удалить их.

...