本文展示 VC++ 資料庫通用模組中 Microsoft DataGrid Control 6.0 的豐富格式化功能,包含欄寬模式、負數百分比顯示、多行文字、背景/前景色、對齊方式等,透過截圖說明各選項效果,供開發者快速評估 UI 表現力。
| 功能 | DataGrid 屬性/方法 | 備註 |
|---|---|---|
| 欄寬設定 | Columns.GetItem(index).Width | 單位:像素或百分比 (配合 ColumnWidthMode) |
| 欄標題 | Columns.GetItem(index).Caption | |
| 數值格式 | Columns.GetItem(index).Format | 如 "#,##0.00%"、"General Number" |
| 文字換行 | Columns.GetItem(index).AllowSizing / WordWrap | 需配合 RowHeight 自動調整 |
| 背景色 | BackColor, AlternatingBackColor | 整體/交替列 |
| 前景色 | ForeColor, Columns.GetItem(index).ForeColor | 可逐欄設定 |
| 對齊 | Columns.GetItem(index).Alignment | dbgLeft/dbgCenter/dbgRight |
// 假設 m_dbTest 為 CDataGrid 變數,已繫結資料來源
_variant_t vIndex;
// 設定欄寬與標題
for (long i = 0; i < m_dbTest.GetColumns().GetCount(); ++i) {
vIndex = i;
m_dbTest.GetColumns().GetItem(vIndex).SetWidth(80); // 預設 80 像素
// 標題在繫結時已由資料表欄位名自動帶入,亦可覆寫
// m_dbTest.GetColumns().GetItem(vIndex).SetCaption(_T("自訂標題"));
}
// 啟用多行 (需 DataGrid 控件版本支援)
m_dbTest.SetAllowUserResizing(TRUE); // 允許使用者調整
// 交替列背景色
m_dbTest.SetBackColor(RGB(255,255,255));
m_dbTest.SetAlternatingBackColor(RGB(230,240,255));
// 依欄位設定對齊 (範例:第 1 欄置中,第 2 欄靠右)
vIndex = 1; m_dbTest.GetColumns().GetItem(vIndex).SetAlignment(dbgCenter);
vIndex = 2; m_dbTest.GetColumns().GetItem(vIndex).SetAlignment(dbgRight);
// 負數紅字 (需自行處理 CellFormatting 或使用 Format 屬性)
// DataGrid 6.0 原生 Format 支援條件格式有限,建議改用 FlexGrid 或自繪
DataGrid 6.0 為 ActiveX 控件,現代專案建議遷移至:
Ultimate Grid、BCGSoft Grid、CXTPReportControl (Codejock)。DataGridView 或 WPF DataGrid 配合 CWinFormsControl 宿主。DataGrid 6.0 提供基礎的表格格式化功能,涵蓋欄寬、數值格式、換行、色彩、對齊等常見需求。透過 Columns 集合逐欄設定屬性即可達成大部分需求,但進階條件格式、大量資料虛擬化、高 DPI 支援等現代需求,建議改用更新的網格控件。