0

私は複雑なグリッド レイアウトに取り組んでおり、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);

...
}

成功しない場合: セル テキストは常に 1 行で表示されます。これはまさに私が望んでいないことです。

複数行のセルテキストを取得するにはどうすればよいですか?

4

2 に答える 2

1

誰かに役立つことを願って、自分の問題をどのように解決したかを話します。

複数行のセルを設定するには、メンバー関数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);

}
于 2013-02-18T10:56:13.993 に答える