我目前正在与同事一起开发一个应用程序 - 她正在编写一个 Web 表单,允许用户输入和管理文本,这些文本将保存到数据库中,然后显示在桌面应用程序中。
我正在使用富文本框来显示数据库中的文本。我们希望允许用户在 Web 应用程序中使用基本格式(粗体、斜体、下划线),然后在桌面应用程序中显示该格式。
我想知道是否有可以在网络表单中输入的标签或其他内容(如 或 [b] 等),它会自动在 RTB 中显示格式。
如果这不可能,实现此功能的最佳方法是什么?
我正在为桌面应用程序使用 C# windows 窗体。
更新: Web 表单使用 PHP。
请您参考如下方法:
几年前我就玩过这个 - 基本上我在数据库中有文本,我正在标记以强调某些单词。我在存储过程中对其进行了标记,然后在客户端将其转换为 RTF。
我尝试查看 RTF 规范,但仅阅读规范并知道该怎么做有点具有挑战性。
我建议打开写字板(开始 -> 运行... -> 写字板),并使用不同的字体样式等。然后将其作为 RTF 文档保存在某处。在您选择的纯文本编辑器中打开该文档(我使用 Notepad++ ),这将帮助您更轻松地找出 RTF。
这是我创建的一个简单 RTF 文档的示例:
{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0 Arial;}}
{\colortbl ;\red0\green0\blue255;}
{\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\f0\fs20 Hello World.\par
\b This text is bold.\b0\par
\i This text is italicized.\i0\par
\cf1 This text is blue.\cf0\par
}
其中一些标签只是额外的标记,您可以不用它们。试一试看看。
最终你应该能够按照以下方式做一些事情:
string rtf = GetMarkupTextFromServer();
rtf = rtf.Replace("[b]", @"\b");
rtf = rtf.Replace("[/b]", @"\b0");
rtf = rtf.Replace("[i]", @"\i");
rtf = rtf.Replace("[/i]", @"\i0");
...
mRichTextBox.Rtf = rtf;
