1

我目前正在与一位同事一起开发一个应用程序 - 她正在编写一个 Web 表单,允许用户输入和管理将保存到数据库中然后显示在桌面应用程序中的文本。

我正在使用富文本框来显示数据库中的文本。我们希望允许用户在 Web 应用程序中使用基本格式(粗体、斜体、下划线),然后在桌面应用程序中显示该格式。

我想知道是否有可以在 Web 表单中输入的标签或其他内容(如或 [b] 等),它将自动在 RTB 中显示格式。

如果这不可能,实现此功能的最佳方法是什么?

我正在为桌面应用程序使用 C# windows 窗体。

更新:网络表单是 PHP 的。

4

5 回答 5

1

几年前我玩过这个 - 基本上我在数据库中有文本,我正在标记以强调某些单词。我在存储过程中对其进行了标记,然后在客户端将其转换为 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;
于 2009-06-09T19:45:09.840 回答
1

如果用户无法在 Windows 端编辑数据而只能在 Web 端编辑数据,您可以将 HTML 源代码存储在 DB 中,并将其显示在 Windows 应用程序的 Webbrowser 控件中...

于 2009-06-03T00:37:59.803 回答
1

正如BFree 所提到的,您在 Web 环境中要做的最好的事情就是富文本 HTML 编辑器。幸运的是,那里有许多免费的编辑器。如果您将信息作为 HTML 存储在数据库中并选择在 WebForm 中重新使用它,那么您将被 Web 浏览器控件困住。但是,您可以选择通过使用库在 HTML 和 RTF 之间来回转换该信息。

不幸的是,经过一番搜索,我找不到任何您不必支付的费用。您也许可以利用 MS Word 作为数据泵以编程方式进行转换,但这可能无法很好地扩展。

于 2009-06-03T01:04:06.460 回答
1

使用网络浏览器控件并使用您在网络表单中使用的相同编辑器,这样您以后就不会遇到复杂的问题。

您可以在两种环境中拥有相同的外观和感觉。如果您需要帮助以使用网络形式的编辑器,请回复此消息。

高温高压

于 2009-06-03T01:29:40.323 回答
0

创建一个名为 temp 的文件夹,然后使用此代码

frmEditPro.RichTextBox1.SaveFile("C:\temp\Doc1.rtf", _RichTextBoxStreamType.RichText)
于 2014-10-21T19:49:32.160 回答