我想在cxgrid表格中设置我已经单击过的单元格属性,比如将所有单击过的单元格内的字体都变为红色.哪位大哥知道如何实现?

解决方案 »

  1.   

    怎样使鼠标移动时,相应的单元里的文字变色?
    解决:
    var
    FTrackItem: TcxCustomGridTableItem;
    FTrackRec: TcxCustomGridRecord;
    procedure TForm1.cxGrid1DBTableView1CustomDrawCell(
    Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
    AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
    begin
    if (AViewInfo.GridRecord = FTrackRec) and (AViewInfo.Item = FTrackItem) then
    begin
    ACanvas.Font.Color := clred; //红色字体
    ACanvas.Font.Style := [fsUnderline];//带下划线
    end;
    end;
    procedure TForm1.cxGrid1DBTableView1MouseMove(Sender: TObject;
    Shift: TShiftState; X, Y: Integer);
    var
    AHitTest: TcxCustomGridHitTest;
    ATrackItem: TcxCustomGridTableItem;
    ATrackRec: TcxCustomGridRecord;
    begin
    ATrackItem := FTrackItem;
    ATrackRec := FTrackRec;
    AHitTest := (Sender as TcxGridSite).GridView.ViewInfo.GetHitTest(X, Y);
    if AHitTest is TcxGridRecordCellHitTest then
    begin
    FTrackItem := TcxGridRecordCellHitTest(AHitTest).Item;
    FTrackRec := TcxGridRecordCellHitTest(AHitTest).GridRecord;
    end
    else
    begin
    FTrackItem := nil;
    FTrackRec := nil;
    end;
    if (ATrackItem <> FTrackItem) or (ATrackRec <> FTrackRec) then
    begin
    // Invalidate old cell
    if ATrackRec <> nil then
    ATrackRec.Invalidate(ATrackItem);
    // Invalidate new cell
    if FTrackRec <> nil then
    FTrackRec.Invalidate(FTrackItem);
    end;
    end;