Переменные строки высоты в WinForms ListView

Если кому-то все еще нужно то, что было в исходном вопросе:

CREATE TABLE testtable(
    id serial PRIMARY KEY,
    refs integer[],
    EXCLUDE USING gist( refs WITH && )
);

INSERT INTO testtable( refs ) VALUES( ARRAY[100,200] );
INSERT INTO testtable( refs ) VALUES( ARRAY[200,300] );

, и это даст вам:

ERROR:  conflicting key value violates exclusion constraint "testtable_refs_excl"
DETAIL:  Key (refs)=({200,300}) conflicts with existing key (refs)=({100,200}).

Проверено в Postgres 9.5 на Windows.

Обратите внимание, что это создало бы индекс с помощью оператора &&. Поэтому, когда вы работаете с testtable, было бы быстрее проверить ARRAY[x] && refs, чем x = ANY( refs ) из-за индексирования внутренних объектов Postgres.

P.S. Как правило, я согласен с вышеприведенным ответом, но этот подход - просто приятный вариант, когда вам не нужно действительно беспокоиться о производительности и т. Д.

7
задан dbkk 9 March 2009 в 22:33
поделиться

6 ответов

Одна опция думать:

Для переопределения высоты объекта всех строк создайте фиктивный ImageList и установите ее на желаемую высоту и присвойте ее listview в зависимости от представления или схватите понятие http://www.codeproject.com/KB/list/changerowheight.aspx

, Если Вы используете ObjectListView, можно изменить высоту объекта всех строк, симпатичных легко . Но тем не менее, нет никакого способа изменить отдельную высоту объекта, пока Вы используете ListView.

2
ответ дан 7 December 2019 в 01:27
поделиться

Если бы Вы используете режим деталей, интересно, не было ли DataGridView более универсальным. Каждая строка имеет Высоту, или можно использовать AutoSizeRowsMode, чтобы сделать это автоматически. См. MSDN "Изменять размеры Столбцов и строк в Управлении Windows Forms DataGridView".

4
ответ дан 7 December 2019 в 01:27
поделиться

Управление ListBox действительно поддерживает переменные строки высоты, но Вы имеете, делают весь рисунок сами.

Набор DrawMode к OwnerDrawVariable

Тогда добавляют

protected override void OnDrawItem(DrawItemEventArgs e)
{
  /* Drawing code here */
}

protected override void OnMeasureItem(MeasureItemEventArgs e)
{
  /* Measure code here */
}

, я использую привлеченное владельцами поле списка в программе под названием Генератор отчетов Задачи для списка каждой задачи вводимый пользователь. Каждая запись по-другому в зависимости от того, сколько текста введено.

1
ответ дан 7 December 2019 в 01:27
поделиться

Само управление Windows ListView (который обертывается.NET управление ListView) не поддерживает переменные высоты строки.

, Если Вы придерживаетесь ListView, необходимо будет зафиксировать строки высоты.

0
ответ дан 7 December 2019 в 01:27
поделиться

Если переменные строки высоты - то, что Вы хотите, я рассмотрел бы использование DataGridView вместо этого. Это очень много строк высоты переменной поддержек (с помощью стилей ячеек) и намного легче использовать, чем попытка для рожка для обуви представление списка в выполнение, что Вы хотите.

0
ответ дан 7 December 2019 в 01:27
поделиться

ObjectListView, упомянутый в первом ответе, не поддерживает переменную высоту строк. Об этом четко сказано в FAQ . Базовый элемент управления Windows listview просто не поддерживает переменную высоту строки. Вы должны обратить внимание на другие, специально написанные элементы управления.

Вы можете рассмотреть отличный XPTable Мэтью Холла и его проект обновления , а также фантастический Ли Пола Александра Список в стиле Outlook .

2
ответ дан 7 December 2019 в 01:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: