cxgrid 的几个问题,查了好多资料没解决.请指教..(100)

  • 主题发起人 主题发起人 yeszhang
  • 开始时间 开始时间
Y

yeszhang

Unregistered / Unconfirmed
GUEST, unregistred user!
1、如何设定处于 编辑状态 的那个单元格 Cell 的背景和字体颜色.2、如果让双击某 Cell 再进入编辑状态,而不是单击就开始编辑状态。
 
在线等啊.解决马上给分.
 
单元格, 重绘就可以了. 没用过 cxgrid, 但我想跟 TDBGrid, TStringGrid 一个道理吧
 
看来这个问题真的很难?第一个问题关键是如何知道哪个单元格目前处于编辑状态?
 
Type TMyDBGrid=class(TDBGrid);procedure TForm1.FormCreate(Sender: TObject);begin TMyDBGrid(DBGrid1).Row 表示当前行 TMyDBGrid(DBGrid1).Col 表示当前列end;
 
【选中】和进入【编辑状态】的概念是不一样的..
 
styles里设置selection的style试试看。应该可以改变选择单元格的颜色。重写cell的单击事件和双击事件就可以做到你想要的效果。
 
styles里设置selection的style,在行选中时表示整行颜色.将OptionsSelection.CellSelect设置为True时没效果.选中的Cell不会变为styles里设置selection的style设置的颜色...
 
先说明这是DXGRID的,CXGRID应该也差不多吧.编写事件 OnCustomDrawCell if AFocused then begin AColor := clHighlight; //背景颜色 AFont.Color := clHighlightText;//字体颜色 end;OptionsBehavior 选项下的edgoEnterShowEditor :=false;edgoImmediateEditor := false
 
应该要改控件吧。没有属性直接设置。在编辑状态下,一般Grid是会创建一个Editor出来编辑的,所以你要设置的颜色应该是这个Editor的颜色,在Grid中没办法设置的, 只能自己改了。
 
第二个问题procedure TFrm.cxGrid1DBTableView1CellDblClick( Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);begin sender.OptionsData.Editing := true;end;procedure TFrm.cxGrid1DBTableView1FocusedItemChanged( Sender: TcxCustomGridTableView; APrevFocusedItem, AFocusedItem: TcxCustomGridTableItem);begin sender.OptionsData.Editing := false;end;
 
第一个问题procedure TFrm.cxGrid1DBTableView1CustomDrawCell( Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);begin if AViewInfo.Focused then begin ACanvas.Canvas.Brush.Color :=cl3DLight; ACanvas.canvas.Font.Color := clRed; ACanvas.canvas.Font.Style := [fsBold]; end;end;
 
接受答案了.
 
后退
顶部