如何修改Delphi+DevExpress DBGrid默认编辑窗口的颜色?
解决Delphi Tokyo + DevExpress V18 DBGrid就地编辑器颜色覆盖问题
方法1:在OnInitEdit事件中直接修改就地编辑器样式
直接获取激活的编辑器实例,强制设置其颜色并禁用皮肤样式覆盖:
procedure TYourForm.cxGridTableView1InitEdit(Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem; AEdit: TcxCustomEdit); begin // 设置自定义背景色与字体色 AEdit.Style.Color := clSkyBlue; // 替换为你需要的背景色 AEdit.Style.Font.Color := clMaroon; // 替换为你需要的字体色 // 清空皮肤关联,避免皮肤样式覆盖自定义设置 AEdit.Style.Skinning.SkinSection := ''; end;
方法2:通过GridView的全局编辑样式设置
无需写代码,直接在设计时配置:
- 选中cxGrid的TableView,打开
Styles属性 - 展开
Editing节点,选择Active样式 - 在右侧属性面板修改
Color(背景色)和Font.Color(字体色) - 该样式专门控制编辑状态下单元格的外观,优先级高于默认皮肤
方法3:修改DevExpress皮肤的编辑器高亮样式
如果需要保留皮肤整体风格,仅调整编辑状态颜色:
- 打开DevExpress Skin Editor(V18版本在安装目录的
Tools\Skin Editor下) - 加载你当前使用的皮肤(比如Office 2016 Colorful)
- 在左侧导航栏找到
Editors->InplaceEdit - 选择
Focused状态,修改其Background和Text颜色 - 保存皮肤包,在项目中加载修改后的皮肤文件
注意事项
- 检查是否有其他事件(如OnDrawCell、OnFocus)的代码与编辑样式冲突,避免重复设置导致覆盖
- 若使用了数据集字段的DisplayStyle,确保未覆盖编辑状态的颜色设置
内容的提问来源于stack exchange,提问作者Antony Masefield
相关产品推荐
相关产品推荐

