如何从Web应用程序保存富文本并将其显示在富文本框中

时间:2009-06-03 00:32:30

标签: c# winforms formatting webforms richtextbox

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

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

我想知道是否有标签或某些东西可以输入到网络表单(如或[b]等),这将自动显示RTB中的格式。

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

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

更新: Web表单是PHP格式。

5 个答案:

答案 0 :(得分:1)

如果用户无法在Windows端编辑数据,但只能在Web端编辑,则可以将HTML源存储在数据库中,并在Windows应用程序的Web浏览器控件中显示... < / p>

答案 1 :(得分:1)

就像BFree提到的那样,您在Web环境中要做的最好的事情是Rich Text HTML编辑器。幸运的是,那里有numerous free editors。如果将信息以HTML格式存储在数据库中并选择在WebForm中重复使用,那么您将无法使用Web浏览器控件。但是,您可以选择通过使用库在HTML和RTF之间来回转换该信息。

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

答案 2 :(得分:1)

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

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

HTH

答案 3 :(得分:1)

几年前我就玩过这个 - 基本上我在数据库中有文字,我正在标记以强调某些单词。我在存储过程中对其进行了标记,然后将其转换为客户端的RTF。

我试着研究RTF规范,但只是阅读规范并知道该怎么做才有点挑战。

我建议弹出打开的Wordpad(开始 - &gt;运行... - &gt; wordpad),并乱用不同的字体样式等。然后将其保存为某处的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;

答案 4 :(得分:0)

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

frmEditPro.RichTextBox1.SaveFile("C:\temp\Doc1.rtf", _RichTextBoxStreamType.RichText)