如何将数据从richtextbox传输到另一个richtextbox WPF C#

Ken*_*ura 5 c# wpf

您好我在我的richtextbox中显示或传输数据到其他richtextbox有问题...

richtextbox1.Document = richtextbox2.Document; //This will be the idea..
Run Code Online (Sandbox Code Playgroud)

实际上我打算做的是,我想将我的数据从我的数据库传输到我的listview,它将显示为它的内容

SQLDataEHRemarks = myData["remarks"].ToString();// Here is my field from my database which is set as Memo
RichTextBox NewRichtextBox = new RichTextBox();// Now i created a new Richtextbox for me to take the data from SQLDataEHRemarks...
NewRichtextBox.Document.Blocks.Clear();// Clearing
TextRange tr2 = new TextRange(NewRichtextBox.Document.ContentStart, NewRichtextBox.Document.ContentEnd);// I found this code from other forum and helps me a lot by loading data from the database....
MemoryStream ms2 = GetMemoryStreamFromString(SQLDataEHRemarks);//This will Convert to String
tr2.Load(ms2, DataFormats.Rtf);//then Load the Data to my NewRichtextbox
Run Code Online (Sandbox Code Playgroud)

现在我想要做的是,我将把这些数据加载到我的ListView ..或其他控件,如textblock或textbox ...

_EmpHistoryDataCollection.Add(new EmployeeHistoryObject{
EHTrackNum = tr2.ToString()  // The problem here is it will display only the first line of the paragraph.. not the whole paragraph
}); 
Run Code Online (Sandbox Code Playgroud)

Eir*_*rik 4

使用Textthe 的属性TextRange代替.ToString()

RichTextBox获取字符串内容的方法:

public static string GetStringFromRichTextBox(RichTextBox richTextBox)
{
    TextRange textRange = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd);
    return textRange.Text;
}
Run Code Online (Sandbox Code Playgroud)

RichTextBox获取富文本内容的方法:

public static string GetRtfStringFromRichTextBox(RichTextBox richTextBox)
{
    TextRange textRange = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd);
    MemoryStream ms = new MemoryStream();
    textRange.Save(ms, DataFormats.Rtf);

    return Encoding.Default.GetString(ms.ToArray());
}
Run Code Online (Sandbox Code Playgroud)

编辑:RichText您可以通过执行以下操作将从 GetRtfStringFromRichTextBox() 返回的富文本放入另一个控件中:

FlowDocument fd = new FlowDocument();
MemoryStream ms = new MemoryStream(Encoding.ASCII.GetBytes(richTextString));
TextRange textRange = new TextRange(fd.ContentStart, fd.ContentEnd);
textRange.Load(ms, DataFormats.Rtf);
richTextBox.Document = fd;
Run Code Online (Sandbox Code Playgroud)