You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

点击Label9向TextBoxSafety添加彩色星号Emoji失败,如何解决?

解决VBA文本框插入彩色Emoji显示为黑色的问题

标准的VBA普通TextBox控件(Windows原生文本框)基于GDI渲染,不支持OpenType彩色字体特性,因此无法显示彩色Emoji,所有Unicode Emoji都会被渲染为单色(黑色)。你用到的ChrW(&H2B50)对应的黄色星号Emoji,只有在支持彩色字形的控件中才能显示原本的颜色。

解决方案

  • 替换为RichTextBox控件
    这是最简便可行的方法,RichTextBox支持RTF格式和彩色字体渲染:

    1. 在VB编辑器工具箱中添加RichTextBox控件(右键工具箱→部件→勾选「Microsoft Rich Textbox Control 6.0」)。
    2. 将原有的TextBoxSafety替换为RichTextBox控件,命名为RichTextBoxSafety。
    3. 修改Label9的点击事件代码:
      Private Sub Label9_Click()
          ' 设置Windows自带的支持彩色Emoji的字体
          RichTextBoxSafety.Font.Name = "Segoe UI Emoji"
          ' 直接在光标位置插入彩色星号Emoji
          RichTextBoxSafety.SelText = ChrW(&H2B50)
          ' 将光标定位到插入内容后方
          RichTextBoxSafety.SelStart = RichTextBoxSafety.SelStart + 1
      End Sub
      

    替换后,插入的星号Emoji就能正常显示黄色,其他彩色Emoji也能正确渲染。

  • 若必须使用普通TextBox
    普通TextBox本身不支持彩色Emoji渲染,只能接受单色显示效果,或者需要引入第三方自定义文本控件(实现成本较高,不推荐)。

内容的提问来源于stack exchange,提问作者vbaguru

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 05:03:28