Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Обращение к столбцу в ListBox


Автор: Martin_8 12.11.2006, 15:21
Здравствуйте. 
У меня есть ListBox, с несколькими столбцами. Как обратится и занести данные в произвольный столбец ListBox-а ?

Автор: anwe 12.11.2006, 17:04
Прежде всего скажу, что поменять данные в любом столбце общим гамузом не получится, так как в них лишь отображаются данные. Сами данные связанны с элементами, значит надо переберать поэлементно и менять данные в подэлементах.

Попробуй так. Есть сообщение LVM_SETITEMTEXT, которое меняет текст выбранного элемента или его подэлемента. В своем lParam оно содержит указатель на структуру LV_ITEM. Ее записи:
Код
UINT   mask; 
int    iItem; 
int    iSubItem; 
UINT   state; 
UINT   stateMask; 
LPTSTR  pszText; 
int    cchTextMax; 
int    iImage; 
LPARAM lParam;

Тебе необходима запись iSubItem - это индекс подэлемента, ассоциированный с элементом, заданном в iItem. Можно считать, что это поле содержит колонку таблицы. Допустим, у тебя 4 колонки, первая колонка будет содержать элементы, а остальные 3 колонки предназначаются для подэлементов.
Если надо изменить текст в 3-й колонке, то ставишь в iSubItem 2, в pszText ставишь указатель нужный текст.

Автор: Vyacheslav 13.11.2006, 11:05
Что значит "в произвольный"?
Если у ListBox увтановлена возможность в несколько колонок, то это значит, что  последующие колонки являются продолжением предыдущих и фраза
Цитата

занести данные в произвольный столбец 

бессмысленна.
Что бы данные оказались во втором столбце, нужно набить их столько, что бы  они не вvещались в первом столбце
Вы похоже не тот компонент используете
Вам нужно TListView , установленный в стиле vsReport

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)