方案一(最省事,设计期):数据窗口画板里全选所有列 → Border 属性改为 Box(1)。Box 用系统窗口边框色(黑/深灰),比默认的 Lowered(3) 明显得多。
方案二(运行期统一加深):
// 适用环境:PB 9+,Grid 风格数据窗口
// 输入值:目标数据窗口(示例 dw_1,按实际控件名修改)
long ll_cols
integer li_col
string ls_name, ls_err, ls_out
dw_1.SetRedraw(false) // 批量改属性前关重绘,避免闪烁
ll_cols = long(dw_1.Describe("DataWindow.Column.Count"))// 取总列数
for li_col = 1 to ll_cols
ls_name = dw_1.Describe("#" + string(li_col) + ".Name")// 第 li_col 列的列名
if ls_name <> "?" then
ls_err = dw_1.Modify(ls_name + ".Border = '1'")// 1=Box 实线框,比 Lowered 深
if ls_err <> "" then ls_out += ls_name + ":" + ls_err + "~r~n"
end if
next
dw_1.SetRedraw(true)
if ls_out = "" then
MessageBox("完成", "全部列边框已设为 Box,网格线已加深")
else
MessageBox("完成", "部分列失败:~r~n" + ls_out)
end if
方案三(swimchen 老师说的 SetSysColor,最深但全局影响):改系统 3D 色(COLOR_BTNSHADOW=16、COLOR_3DDKSHADOW=21、COLOR_3DLIGHT=22),声明 FUNCTION integer SetSysColors(integer n, ref integer ele[], ref ulong col[]) LIBRARY "user32.dll",启动时把阴影色改成深灰。注意它全局影响整个程序(乃至系统)的 3D 外观,务必先用 GetSysColor 保存原值,退出/销毁时恢复;仅个别窗口显示问题时,优先用方案一/二。
pbai
页:
1
[2]