动态生成的表单控件如何正确设置Wingdings 2等特殊字体?
解决方法
核心修正逻辑
动态生成ActiveX/Forms控件时,需先设置字体相关属性,再赋值文本内容,避免内容先按默认字体渲染后,字体修改未触发界面重绘。你当前代码同时设置了顶层FontName和Font.Name属性,也可能产生属性冲突。
修正后代码
Set obj = Me.DataSetAuthor.Controls.Add("Forms.Label.1", fld) With obj .Top = top .Left = 5000 .Width = 25 ' 适当加宽避免图标被截断 .Height = 18 .ControlTipText = "search " & heading ' 优先完成字体配置 With .Font .Name = "Wingdings 2" .Size = 16 End With ' 字体配置完成后再设置Caption .Caption = "U" ' 强制控件重绘刷新显示效果 .Repaint End With
额外排查点
- 确认当前系统已安装
Wingdings 2字体,该字体为Office默认预装字体,精简版Office可能缺失 - 若仍显示异常,可将控件的
BackColor属性设为和背景一致,避免透明样式影响字体渲染
内容的提问来源于stack exchange,提问作者Bill Early
相关产品推荐
相关产品推荐

