Unplanned
Last Updated: 08 Mar 2017 07:58 by ADMIN
How to reproduce:
public partial class Form1 : Form
{
    RadRichTextBox tb1;
    RadRichTextBox tb2;
    private bool shouldFocus = false;

    public Form1()
    {
        InitializeComponent();

        tb1 = new RadRichTextBox();
        this.Controls.Add(tb1);

        tb2 = new RadRichTextBox();
        tb2.Location = new Point(200, 0);
        this.Controls.Add(tb2);

        this.Load += Form1_Load;
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        StyleDefinition style = new StyleDefinition();
        tb1.IsReadOnly = true;
        tb1.Document.Insert("text 1", style);

        tb2.Document.Insert("text 2", style);
        tb2.IsReadOnly = true;
    }

    private void radButton1_Click(object sender, EventArgs e)
    {
        tb1.IsReadOnly = false;
        tb2.IsReadOnly = false;
        tb1.Focus();
    }
}

Workaround:
public partial class Form1 : Form
{
    RadRichTextBox tb1;
    RadRichTextBox tb2;
    private bool shouldFocus = false;

    public Form1()
    {
        InitializeComponent();

        tb1 = new RadRichTextBox();
        tb1.GotFocus += tb1_GotFocus;
        tb1.LostFocus += tb1_LostFocus;
        this.Controls.Add(tb1);

        tb2 = new RadRichTextBox();
        tb2.Location = new Point(200, 0);
        tb2.GotFocus += tb2_GotFocus;
        tb2.LostFocus += tb2_LostFocus;
        this.Controls.Add(tb2);

        this.Load += Form1_Load;
    }

    private void tb2_LostFocus(object sender, EventArgs e)
    {
        shouldFocus = false;
        tb2.IsReadOnly = true;
    }

    private void tb2_GotFocus(object sender, EventArgs e)
    {
        if (shouldFocus)
        {
            tb2.IsReadOnly = false;
        }
    }

    private void tb1_LostFocus(object sender, EventArgs e)
    {
        tb1.IsReadOnly = true;
    }

    private void tb1_GotFocus(object sender, EventArgs e)
    {
        if (shouldFocus)
        {
            tb1.IsReadOnly = false;
        }
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        StyleDefinition style = new StyleDefinition();
        tb1.IsReadOnly = true;
        tb1.Document.Insert("text 1", style);

        tb2.Document.Insert("text 2", style);
        tb2.IsReadOnly = true;
    }

    private void radButton1_Click(object sender, EventArgs e)
    {
        if (shouldFocus)
        {
            tb2.Focus();
        }
        else
        {
            shouldFocus = true;
            tb1.Focus();
        }
    }
}
Unplanned
Last Updated: 21 May 2018 13:09 by ADMIN
Unplanned
Last Updated: 30 Mar 2016 12:20 by ADMIN
To reproduce:
Use the following code and then select some text:
private void radButton1_Click(object sender, EventArgs e)
{
    TxtFormatProvider txtProvider = new TxtFormatProvider();
    RichTextEditor.Document = txtProvider.Import(sampleText);

    RichTextEditor.Document.LineSpacingType = LineSpacingType.Exact;
    RichTextEditor.Document.LineSpacing =10;

    DocumentPosition startPosition = RichTextEditor.Document.CaretPosition;
    DocumentPosition endPosition = new DocumentPosition(startPosition);
    startPosition.MoveToStartOfDocumentElement(RichTextEditor.Document);
    endPosition.MoveToEndOfDocumentElement(RichTextEditor.Document);

    RichTextEditor.Document.Selection.Clear();
    RichTextEditor.Document.Selection.AddSelectionStart(startPosition);
    RichTextEditor.Document.Selection.AddSelectionEnd(endPosition);

    RichTextEditor.RichTextBoxElement.ChangeFontFamily(new Telerik.WinControls.RichTextEditor.UI.FontFamily("Segoe UI"));
    RichTextEditor.RichTextBoxElement.ChangeFontSize(Unit.PointToDip(10));
    RichTextEditor.Document.Selection.Clear();
}

Workaround:
    RichTextEditor.Document.LineSpacingType = LineSpacingType.Auto;
    RichTextEditor.Document.LineSpacing =.5;
Unplanned
Last Updated: 17 Apr 2018 09:19 by ADMIN
When CJK text (Chinese, Korean, Japanes) is copied from WordPad and paste into RadRichTextBox text, the characters are imported incorrectly (as '?' and as different characters). The same applies if WordPad document containing CJK is imported from RTF. 

The problem is related to the specified \fcharset134 RTF tag, which is not properly interpreted.
Unplanned
Last Updated: 01 May 2018 10:45 by ADMIN
How to reproduce: create a table with 1px of the inner borders and 3px of the outer borders. The attached screenshots demonstrates the issue. A similar result can be also observed with other widths as well.
Unplanned
Last Updated: 12 Mar 2018 15:51 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: RichTextEditor
Type: Bug Report
2
When you have more than one RadRichTextEditor controls on the form and you have selected text in both of theme, only the focused RadRichTextEditor should show the selection. 
Unplanned
Last Updated: 27 Dec 2016 15:34 by ADMIN
InvalidOperationException is thrown in the IsInNonEditableRange() method of RadDocument when assigning a document to RadRichTextBox, which is created through the model and contains several read-only ranges.

Workaround: Call MeasureAndArrangeInDefaulSize().
Unplanned
Last Updated: 19 Jun 2017 11:41 by ADMIN
To reproduce: please refer to the attached gif file

Add a custom tab in the ribbon UI and a RadDropDownListElement bound to a list of strings. The first item is selected by default. Insert a table by using the ribbon UI and try to get programmatically the RadDropDownListElement.SelectedValue/Index. It is null/-1 although the text is correct.

Workaround:

public class CustomRichTextEditorRibbonBar : RichTextEditorRibbonBar
{
           protected override void CreateChildItems(RadElement parent)
    {
        base.CreateChildItems(parent);
        FieldInfo fi = typeof(RadRibbonBar).GetField("ribbonBarElement", BindingFlags.Instance | BindingFlags.NonPublic);
        RadRibbonBarElement ribbonBarElement = fi.GetValue(this) as RadRibbonBarElement;

        ribbonBarElement = new CustomRadRibbonBarElement();
        fi.SetValue(this, ribbonBarElement);
        this.RootElement.Children.Add(ribbonBarElement);

        ribbonBarElement.CommandTabSelecting +=
            delegate (object sender, CommandTabSelectingEventArgs args) { OnCommandTabSelecting(args); };
        ribbonBarElement.CommandTabSelected +=
            delegate (object sender, CommandTabEventArgs args) { OnCommandTabSelected(args); };

        ribbonBarElement.ExpandedStateChanged += delegate (object sender, EventArgs args)
        {
            this.OnRibbonBarExpandedStateChanged(args);
        };


    }
}

public class CustomRadRibbonBarElement : RadRibbonBarElement
{
  
    protected override float GetMaximumTabContentHeight()
    {
        return 104; 
    }
}
Unplanned
Last Updated: 05 Apr 2017 14:51 by ADMIN
The RTF specifications states that the header of the document should start with "\rtfN" where N is the version of the RTF. Currently, the RtfFormatProvider do not save the version, but only "\rtf". Most software handles this case, but in some cases the document cannot be read.
Unplanned
Last Updated: 15 Jun 2017 14:06 by ADMIN
Steps to reproduce: 
1. Use the following code snippet: 
public partial class Form1 : RadForm
{
    public Form1()
    {
        InitializeComponent();
        this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
    
        this.radRichTextEditor1.Document = ImportDocx(@"..\..\lorem.docx");
        this.radRichTextEditor1.LayoutMode = DocumentLayoutMode.Paged;
        this.radRichTextEditor1.ChangeSectionPageSize(PaperTypeConverter.ToSize(PaperTypes.A3));
        this.radRichTextEditor1.ChangeSectionPageOrientation(PageOrientation.Landscape);
    }

    private void radButton1_Click_1(object sender, EventArgs e)
    {
        this.radRichTextEditor1.PrintPreview();
    }

    private void radButton3_Click(object sender, EventArgs e)
    {
        this.radRichTextEditor1.Print(true);
    }	
}

Calling the PrintPreview method, the page orientation is updated in PrintSettingDialog. However, the page size is not updated correctly. As result, the printed document is not correct. 
If you call the Print method, the page size and orientation are not updated and the document is printed as in A4/Portrait instead A3/Landscape. 

Workaround:
Use RadPrintDocument: 
private void radButton2_Click(object sender, EventArgs e)
{
    RadPrintDocument radPrintDocument1 = new RadPrintDocument();         
    radPrintDocument1.AssociatedObject = this.radRichTextEditor1;
    radPrintDocument1.Landscape = true;
    PaperSize ps = new PaperSize();
    ps.RawKind = (int)PaperKind.A3;
    radPrintDocument1.DefaultPageSettings.PaperSize = ps;
    radPrintDocument1.Print();
    //this.radRichTextEditor1.Print(true, radPrintDocument1);
}
Unplanned
Last Updated: 19 Jun 2017 11:23 by Chuck
How to reproduce: create a document like the one below, then try to add a comment  for an element in the paragraph with the bookmarks
Public Class Form2
    Sub New()

        InitializeComponent()

        Dim document As New RadDocument()
        Dim section As New Section()
        Dim paragraph As New Paragraph()
        Dim span As New Span("Content prior range[")
        Dim span2 As New Span("]Content after range")
        Dim readOnlyContent As New Span("READ ONLY")
        Dim rangeStart As New ReadOnlyRangeStart()
        Dim rangeEnd As New ReadOnlyRangeEnd()
        rangeEnd.PairWithStart(rangeStart)
        paragraph.Inlines.Add(span)
        paragraph.Inlines.Add(rangeStart)
        paragraph.Inlines.Add(readOnlyContent)
        paragraph.Inlines.Add(rangeEnd)
        paragraph.Inlines.Add(span2)
        section.Blocks.Add(paragraph)
        document.Sections.Add(section)

        Dim bmSection As New Section()
        Dim bmParagraph As New Paragraph()
        Dim bmSpan As New Span("Content prior bookmark[")
        Dim bmSpan2 As New Span("]Content after bookmark")
        Dim bmContent As New Span("Content in Bookmark")
        Dim bmRangeEnd As New BookmarkRangeEnd()
        Dim bmRangeStart = DirectCast(bmRangeEnd.CreatePairedStart(), BookmarkRangeStart)
        bmRangeStart.Name = System.Guid.NewGuid().ToString()
        bmParagraph.Inlines.Add(bmSpan)
        bmParagraph.Inlines.Add(bmRangeStart)
        bmParagraph.Inlines.Add(bmContent)
        bmParagraph.Inlines.Add(bmRangeEnd)
        bmParagraph.Inlines.Add(bmSpan2)
        bmSection.Blocks.Add(bmParagraph)
        document.Sections.Add(bmSection)

        Me.RadRichTextEditor1.Document = document

    End Sub
End Class
Unplanned
Last Updated: 16 Feb 2022 09:24 by Jeremy

Pasting adds an additional paragraph that does not exist in the source(copy).

 

Unplanned
Last Updated: 04 Dec 2017 13:16 by ADMIN
Workaround: To clear a given property, basing on some logic which determines if it should be cleared. For example
this.radRichTextEditor1.CommandExecuting += (s, e) =>
{
    if (e.Command is ChangeStyleNameCommand)
    {
        var style = this.radRichTextEditor1.Document.StyleRepository.GetValueOrNull(e.CommandParameter.ToString());
        if (style.Type == Telerik.WinForms.Documents.Model.Styles.StyleType.Paragraph)
        {
            Paragraph paragraph = this.radRichTextEditor1.Document.CaretPosition.GetCurrentParagraphBox().AssociatedParagraph;
            foreach (Span span in paragraph.EnumerateChildrenOfType<Span>())
            {
                span.ClearValue(Span.FontFamilyProperty);
                span.ClearValue(Span.FontSizeProperty);
            }
        }
    }
};
Unplanned
Last Updated: 20 Dec 2017 09:42 by ADMIN
There is an issue with the way the editor decides what width to render a table.

The example I have encountered is in an HTML email from Outlook that contained a table. Whatever way Outlook composes the HTML, it adds a width attribute and a style attribute to the table's opening tag:

<table width="0" style="width: 500px;">

In this situation, the inline style should take precedence over the width attribute (the width attribute is actually deprecated as of HTML5). This is how all common browsers behave.

You can see in the attached 1_browser.png that Chrome correctly renders the table at 500px;

However the RadRichtextEditor component incorrectly renders the table at width 0 as shown in attached 2_RadRichtextEditor.png, ignoring the width specified in the style attribute.

Curiously, other CSS rules in the style attribute are correctly interpreted.
For example:

<table width="0" style="width: 500px;font-weight:bold;">

will display a table of zero width with bold text in the RadRichTextEditor.

Thanks guys!
Unplanned
Last Updated: 21 Feb 2018 13:30 by ADMIN
Pressing Tab/Shift+Tab when caret position is at the beginning of a paragraph should change current paragraph FirstLineIndent instead of LeftIndent.

First line indent should be changed to Document.DefaultTabWidth step.

Workaround:
private void RadRichTextEditor1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyData != Keys.Tab)
    {
        return;
    }

    this.radRichTextEditor1.Insert("\t");
    e.SuppressKeyPress = true;
    e.Handled = true;
}