TextFormat="Rich Text" 的文本框在 2013 年不起作用
Posted
技术标签:
【中文标题】TextFormat="Rich Text" 的文本框在 2013 年不起作用【英文标题】:Textbox with TextFormat="Rich Text" doesn't work in 2013 【发布时间】:2018-02-21 12:43:07 【问题描述】:我为 SQL 2016 数据库开发了一个 MS-Access 前端。我在 Access 2016 中开发。
一些对话框表单(帮助表单)显示很长的帮助文本。这来自一个 SQL 表:列是 NVARCHAR(MAX)。在 SSMS 中,内容如下所示:
\rtf1\ansi\ansicpg1252\deff0\nouicompat\fonttbl\f0\fnil\fcharset238 Calibri;\f1\fnil\fcharset0 Calibri; *\generator Riched20 10.0.14393\viewkind4\uc1 \pard\f0\fs20\lang1038 [然后是大量带有格式的文本]
此数据显示在文本框中的表单上,TextFormat 设置为“富文本”。
在 Access 2016 中,这可以完美运行。客户端仅安装了 Access 2013。 2013 年,文本框显示文字 RTF 文本,包含代码且没有格式,而不是格式化版本。
我尝试过的:
-
检查了在 Access 2013 中,文本框的 TextFormat 仍然是“富文本”。也就是说,2013(官方)确实支持这个设置。
已将(链接的)SQL 表的内容复制到本地 Access 表中。将列的文本格式属性设置为“富文本”。 (您不能在链接表上执行此操作,因此需要进行复制操作)。我收到一条关于这将如何对值进行 html 编码的警告,请按是。保存表。根据此表制作一个测试表单,其中包含一个 TextFormat="Rich Text" 的文本框。没有区别。
即使此属性设置仍然有效,Access 2013 是否根本不支持在文本框中显示富文本? 或者可能是 Access 2013(甚至客户端机器操作系统:不太可能,因为客户端机器是 Win10 Pro - 开发机器是 Windows Server 2016)无法理解的特定 RTF 编码?
【问题讨论】:
【参考方案1】:您误解了 富文本 属性的作用。 富文本 不使用 RTF,它使用有限形式的 HTML(允许使用 <i>
、<b>
等标签)。
如果您想使用 RTF,您可以使用 RTF 文件和 OLE 对象,或者使用自定义 .ocx。
Stephen Lebans 编写了一个 RTF 控件,可以在 here 找到(无从属关系)。我个人没有使用过,但请随意尝试。
【讨论】:
这不可能,因为在文本框上设置此属性可以完美显示我的格式化文本 - 在 Access 2016 中。将其设置为纯文本(如预期的那样)显示带有所有代码的文字文本。问题是这在 Access 2013 中不起作用。 在 Access 2016 中工作很奇怪。 The documentation 声明它是“存储并解释为富 HTML 标记”。富文本的枚举选项是acTextFormatHTMLRichText。我无法解释你让它在 2016 年下工作,因为 afaik,这应该是不可能的。 这很奇怪。如何将格式编码为 HTML?例如在Word中格式化,并保存为HTML,还是什么?这将使 RTF 及其所有奇怪的东西(我宁愿避免)排除在外。 有很多方法可以实现这一点。共享here 的基于剪贴板的方法可以工作。我过去曾摆弄过 Outlook(使用 RTF 正文创建电子邮件,将格式更改为 HTML),但我不再拥有该代码。这两种方法的一个问题是它不是您想要的 HTML,而是 HTML 的有限子集,并且某些 HTML 标记可能会干扰。 谢谢。如果我们不能让客户端升级到 2016,我可能会尝试。这听起来有点像一场噩梦 - 一种完全奇怪的格式,与现实世界之外的任何东西都不匹配!以上是关于TextFormat="Rich Text" 的文本框在 2013 年不起作用的主要内容,如果未能解决你的问题,请参考以下文章