Я работаю над сложной сеткой, и UltimateGrid — мой выбор.
Я установил многорядный заголовок, тогда у меня есть присоединился к некоторым ячейкам в вертикальном направлении.
Сейчас я ищу способ задать многострочный текст в ячейках заголовков, к которым я присоединился.
Вот пояснительный скриншот.
Я уже попробовал, написав:
void MyCug::OnSetup(){
int rows = 5;
int cols = 20;
// setup rows and columns
SetNumberRows(rows);
SetNumberCols(cols);
// create 3 row top heading
SetTH_NumberRows(2);
...
JoinCells (16, -2, 16, -1); // Here I joins - in heading - two cells : row 16, columns -2 and -1
...
// Then I retrieve merged cell
CUGCell m_cell;
GetCell(16, -2, &m_cell);
// I need to show multi-line content in heading cells: I tried to set multi-row property.
int result = m_cell.SetPropertyFlags(m_cell.GetPropertyFlags() | UGCELL_MULTIROWCELL);
if (result == UG_SUCCESS) {
bool ok = true; // all seems to be ok...
}
m_cell.SetText("string\r\nstring\r\nstring"); // Despite my attempt, this will be always show on a single line!
SetCell(16, -3, &m_cell);
...
}
Без успеха: текст ячейки всегда отображается в одну строку, это именно то, чего я не хочу.
Как я могу получить текст ячейки в несколько строк?
Я рассказываю, как я решил свою проблему, надеясь, что она кому-нибудь пригодится.
Чтобы установить многострочные ячейки, функция-член CUGCell :: SetCellTypeEx () должен быть использован.
Эта функция позволяет вам устанавливать расширенные свойства для отдельных ячеек.
Пример ниже работает отлично:
void MyCug::OnSetup(){
int rows = 5;
int cols = 20;
// setup rows and columns
SetNumberRows(rows);
SetNumberCols(cols);
// create 3 row top heading
SetTH_NumberRows(2);
...
JoinCells (16, -2, 16, -1); // Here i joins - in heading - two cells : row 16, columns -2 and -1
...
// I retrieve merged cell
CUGCell m_cell;
GetCell(16, -2, &m_cell);
cell.SetCellTypeEx(UGCT_NORMALMULTILINE); // set multiline cell
m_cell.SetText("string\r\nstring\r\nstring");
SetCell(16, -3, &m_cell);
}
Других решений пока нет …