C# Winform从MySQL数据库检索格式化文本到Richtextbox

C# Winform从MySQL数据库检索格式化文本到Richtextbox,c#,mysql,winforms,datagridview,richtextbox,C#,Mysql,Winforms,Datagridview,Richtextbox,我正在尝试从datagridview检索所选行数据,并将其显示在RichTextBox中 没有错误消息。当我点击一行时,它似乎只会显示标题和ID之类的数据,而不会显示RichTextBox中的内容 下面是一些截图和我使用的代码 代码如下: if (e.RowIndex >= 0) { string rtfText = this.rtxtinccon.Rtf.Replace(@"\", @"\\"); btnPost.Enab

我正在尝试从datagridview检索所选行数据,并将其显示在RichTextBox中

没有错误消息。当我点击一行时,它似乎只会显示标题和ID之类的数据,而不会显示RichTextBox中的内容

下面是一些截图和我使用的代码

代码如下:

if (e.RowIndex >= 0)
        {

            string rtfText = this.rtxtinccon.Rtf.Replace(@"\", @"\\");
            btnPost.Enabled = true;
            DataGridViewRow row = this.dtvlist.Rows[e.RowIndex];

            #region strings

            lblincid.Text = row.Cells["IID"].Value.ToString();
            cbeid.Text = row.Cells["EID"].Value.ToString();
            txttitle.Text = row.Cells["Title"].Value.ToString();
            rtfText = row.Cells["Description"].Value.ToString();

            #endregion

        }
这是运行时

我使用长文本utf8mb4_unicode_ci作为数据类型

希望你能帮助我。我已经搜索了所有可能的答案,但没有找到任何解决方案。

使用:

 RichTextBox1.Text = row.Cells["Description"].Value.ToString();

在代码中,您只是将RichTextBox中的内容作为字符串获取,并对该字符串进行了更改。由于字符串本身是不可变的,所以您的更改不会反映在RichTextBox中。因此,您需要再次将内容分配给RichTextBox控件

您需要通过以下方式将文本设置到RtfTextBox控件:

this.rtxtinccon.Rtf = row.Cells["Description"].Value.ToString();
您的内容不是Rtf格式。例如,在endregion之前添加此代码:

参考文献:

备注:可以使用此属性将RTF格式的文本放置到 控件以显示或使用 控件文本中定义的指定RTF格式。这 属性通常在从指定RTF文本时使用 另一个RTF源(如Microsoft Word或Windows写字板)连接到 控制如果在运行时更改RightToLeft属性,则仅允许原始 保留不带格式的文本。有关RTF代码,请参见rich MSDN库中的文本格式RTF规范,版本1.6



调试您的代码。@reds我应该放置或编辑什么?您想做什么?@reds我想显示我的描述列的内容,这是一个长文本utf8mb4_unicode_ci。我想在单击该行时将其格式检索到我的richtextbox。请检查发布代码的指南、文章中的代码,并澄清阅读、设置为RichText以及其他导致问题的步骤。到目前为止,post看起来像是印刷错误,因为您似乎错过了富格文本控件的设置值。什么长文本示例?抱歉,似乎是他的富格文本框。我想使用RTF而不是文本,因为它无法正确显示文本,然后继续操作。您能显示要在RTF中输入的文本类型吗?示例文本它似乎只是一个rtxtinccon.Text而不是RTF。没有格式化,那么如果代码只是一个示例,我将键入什么?请帮帮我,我真的非常需要它。Thanks@JoshuaDelaCruz,您的内容不是Rtf格式。准备rtf格式的文本,然后用RichTextBoxI编写,我刚刚输入了它,它仍然是这样。也许我不应该把它变成长文本数据类型?@JoshuaDelaCruz,它不是长文本。从您的代码中,您的数据类型是字符串,这是正常的。但您的文本不是Rtf格式。如果要粘贴简单文本,请使用RichTextBox的文本属性。它将不会格式化。是。它表示文件格式无效。这意味着,您的内容不是Rtf格式。您只需要简单地使用RichTextBox的文本属性control@JoshuaDelaCruz:对于Rtf,您需要格式化Rtf。但对于文本,它将显示为纯文本
this.rtxtinccon.Rtf = @"{\rtf\ansi This is some \b bold\b0 text.}"; // for example