首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C++ Builder 改變 DBGrid 顏色實現間隔列著色

     編輯:關於C++

兩種方式自訂 DBGrid 列/欄顏色

方式一:OnDrawColumnCell 事件繪製間隔列

void __fastcall TForm1::DBGrid1DrawColumnCell(TObject *Sender,
    const TRect &Rect, int DataCol, TColumn *Column,
    TGridDrawState State)
{
    // 奇數列 (RecNo 從 1 起) 設為淺藍背景
    if (Column->Field->DataSet->RecNo % 2) {
        DBGrid1->Canvas->Brush->Color = clSkyBlue;
        DBGrid1->Canvas->FillRect(Rect);
    }
    // 繪製文字 (置中單行)
    DrawText(DBGrid1->Canvas->Handle,
        Column->Field->Text.c_str(), -1,
        (RECT*)&Rect, DT_SINGLELINE | DT_VCENTER | DT_CENTER);
}

方式二:按鈕點擊設定欄位固定背景色

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    for (int i = 0; i < DBGrid1->Columns->Count; i++) {
        if (i % 2 == 0)
            DBGrid1->Columns->Items[i]->Color = clAqua;
        else
            DBGrid1->Columns->Items[i]->Color = clInfoBk;
    }
}

說明

  • 方式一動態繪製,支援資料變動時自動交替色,需自行繪製文字。
  • 方式二靜態設定欄位 Color 屬性,簡單但不支援列交替。
  • 兩者可結合使用:欄位底色 + 列交替色 (需在繪製前判斷)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved