Размер столбца ListView - PullRequest
       1

Размер столбца ListView

0 голосов
/ 14 сентября 2011

У меня есть форма Win с двумя столбцами, и я хотел, чтобы ширина 1-го столбца составляла 2/3 от размера ListView, а второго столбца - 1/3.Я хотел иметь возможность заполнить ListView двумя столбцами и иметь возможность сжимать и расширять его, чтобы освободить место для вертикальной полосы прокрутки, если элементы ListView располагаются ниже нижней части окна.Я придумал этот код, но он вступит в силу только при наличии полосы прокрутки, и даже тогда она немного расширяет столбцы, так что создается горизонтальная полоса прокрутки, которая мне не нужна.Любая помощь очень ценится.

private void AddColumn()
{
    listView1.View = View.Details;
    listView1.Columns.Add("Item");
    listView1.Columns.Add("Date Added");
    int itemColumnWidth = listView1.Width - SystemInformation.VerticalScrollBarWidth;
    listView1.Columns[0].Width = itemColumnWidth / 3 * 2;
    listView1.Columns[1].Width = itemColumnWidth / 3;
}

Ответы [ 2 ]

1 голос
/ 14 сентября 2011

У меня всегда была эта проблема. Вы всегда должны вычитать немного больше места для полосы прокрутки. По крайней мере, вычтите 4 дополнительных пикселя или, чтобы оставаться в безопасности, вычтите 8px до 10px. Никто не заметит маленькое дополнительное пространство.

Я полагаю, что кто-то не понял их арифметику правильно, когда они реализовали представления списков ... Должно быть, происходит некоторое внутреннее заполнение столбцов. Кажется, что дизайн ориентирован на создание дополнительного пространства, когда это необходимо, а не на подгонку колонок к экрану. Подумайте о проводнике Windows: размер столбцов никогда не изменяется в соответствии с размером окна, а вокруг всегда присутствуют неприятные полосы прокрутки.

Мы все хотим, чтобы наше представление списка выглядело как четко спроектированный список ошибок Visual Studio, но этот элемент управления, похоже, представляет собой другую реализацию, которая всегда гарантированно помещает столбцы в ширину элемента управления.

1 голос
/ 14 сентября 2011

Что вы можете сделать, это изменить размер первого столбца до 2/3 ширины и установить второй столбец для расширения до оставшейся ширины.

Метод расширения второго столбца до оставшейся ширины объясняется вОтвет на этот вопрос: Конечный столбец ListView Autosize создает полосу прокрутки

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