If you populate the document with more than one section as shown below: Section Section1 = radRichTextEditor.Document.Sections(0); Paragraph Paragraph1 = new Paragraph(); Span Span1 = new Span("Thank you for choosing Telerik"); Section1.Blocks.Add(Paragraph1); Section Section2 = new Section(); Paragraph Paragraph2 = new Paragraph(); Paragraph2.Inlines.Add(image); Section2.Blocks.Add(Paragraph2); radRichTextEditor..Document.Sections.Add(Section2); then mark as selected the space after the first span, then try to type a character, a NullReferenceException will be thrown. WORKAROUND: class MyInputBehavior : RichTextEditor.RichTextEditorInputBehavior { public MyInputBehavior(RadRichTextBox editor) : base(editor) { } public override void InsertText(string text) { if (this.RichTextBox.IsReadOnly) { return; } Telerik.WinForms.Documents.UI.CaretTextInputHandler handler = null; DocumentPrintLayoutPresenter printLayout = this.RichTextBox.ActiveEditorPresenter as DocumentPrintLayoutPresenter; if (printLayout != null) { DocumentPagePresenter pagePresenter = printLayout.GetFocusedPresenter(); if (pagePresenter == null) { pagePresenter = ((Canvas)printLayout.Content).Children[0] as DocumentPagePresenter; } handler = pagePresenter != null ? pagePresenter.CaretTextInputHandler : null; } DocumentWebLayoutPresenter webLayout = this.RichTextBox.ActiveEditorPresenter as DocumentWebLayoutPresenter; if (webLayout != null) { handler = webLayout.CaretTextInputHandler; } if (handler != null) { handler.HandleTextInsertedWithoutIme(this.RichTextBox.ActiveEditor.Document, text); } } } radRichTextEditor.InputHandler = New MyInputBehavior(radRichTextEditor.RichTextBoxElement)
add property that allows the width of the caret to be changed.
To reproduce: use the following code snippet. The attached screenshot illustrates the missing border. Note: It seems that the RadRichTextEditor remains in Portrait orientation although the RadPrintDocument.DefaultPageSettings.Landscape property is set to true. This issue can be replicated if you specify the PreferredWidth property in pixels in such a way that the table fits in A4 format (wider side). The A4 size print measures 21.0 x 29.7cm. private void Form1_Load(object sender, EventArgs e) { RadDocument document = new RadDocument(); document.LayoutMode = Telerik.WinForms.Documents.Model.DocumentLayoutMode.Paged; Section sec = new Section(); sec.PageOrientation = PageOrientation.Landscape; sec.PageSize = PaperTypeConverter.ToSize(PaperTypes.A4); document.Sections.Add(sec); Paragraph para = new Paragraph(); Table table = new Table(); Border b = new Border(Telerik.WinForms.Documents.Model.BorderStyle.Single, System.Drawing.Color.Black); TableBorders tb = new TableBorders(b); table.Borders = tb; sec.Blocks.Add(table); //first row TableRow tableRow = new TableRow(); table.AddRow(tableRow); //cell 0,0 TableCell cell = new TableCell(); cell.PreferredWidth = new TableWidthUnit(TableWidthUnitType.Percent ,20); tableRow.Cells.Add(cell); cell.Blocks.Add(para); Span span = new Span("Cell 0,0"); para.Inlines.Add(span); //cell 0,1 cell = new TableCell(); cell.PreferredWidth = new TableWidthUnit(TableWidthUnitType.Percent ,80); tableRow.Cells.Add(cell); //second row tableRow = new TableRow(); table.AddRow(tableRow); //cell 1,0 cell = new TableCell(); cell.PreferredWidth = new TableWidthUnit(TableWidthUnitType.Percent ,20); tableRow.Cells.Add(cell); para = new Paragraph(); cell.Blocks.Add(para); span = new Span("Cell 1,0"); para.Inlines.Add(span); //cell 1,1 cell = new TableCell(); cell.PreferredWidth = new TableWidthUnit(TableWidthUnitType.Percent ,80); tableRow.Cells.Add(cell); radRichTextEditor1.Document = document; Telerik.WinControls.UI.RadPrintDocument printDocument = new Telerik.WinControls.UI.RadPrintDocument(); printDocument.AssociatedObject = this.radRichTextEditor1; printDocument.Margins = new System.Drawing.Printing.Margins(0, 0, 0, 0); printDocument.DefaultPageSettings.Landscape = true; System.Drawing.Printing.PaperSize paperSize = new System.Drawing.Printing.PaperSize(); paperSize.RawKind = 9; printDocument.DefaultPageSettings.PaperSize = paperSize; this.radRichTextEditor1.Print(true, printDocument); }
Please refer to the attached gif file.
Description and workaround: It appears that Outlook produces different RTF contents when using its different Copy commands. In some cases the RTF string produced by Outlook contains empty spans which is not a valid element in our implementation. To handle that case, you can subscribe to the CommandExecuting event to capture the Paste command before it was executed, strip the empty spans, and then modify the clipboard contents with a valid RTF string. Additionally, when you try to delete the text of pasted hyperlinks using backspace, an exception will be thrown at some point (for example, after pasting the link \\server\folder1\somefile.txt and deleting the dot). The following code snippet demonstrates how to handle deleting pasted links: Private Sub radRichTextEditor1_CommandExecuting(sender As Object, e As CommandExecutingEventArgs) Handles radRichTextEditor1.CommandExecuting If TypeOf e.Command Is DeleteCommand Me.RadRichTextEditor1.RichTextBoxElement.InvalidateMeasure(true) Me.RadRichTextEditor1.RichTextBoxElement.UpdateLayout() End If End Sub The following code snippet demonstrates how to handle removing empty spans: Private Sub radRichTextEditor1_CommandExecuting(sender As Object, e As CommandExecutingEventArgs) Handles radRichTextEditor1.CommandExecuting If Not (TypeOf e.Command Is PasteCommand) Then Return End If Dim docString As String = Nothing Dim docObj As Object = Clipboard.GetData("Rich Text Format") If docObj IsNot Nothing AndAlso docObj.[GetType]() = GetType(String) Then docString = DirectCast(docObj, String) End If Dim document As RadDocument = Nothing Using stream As New MemoryStream() Dim writer As New StreamWriter(stream) writer.Write(docString) writer.Flush() stream.Seek(0, SeekOrigin.Begin) Try document = New RtfFormatProvider().Import(stream) Catch ex As Exception System.Diagnostics.Debug.WriteLine("Error reading document from clipboard:" & vbLf + ex.ToString()) End Try End Using If document IsNot Nothing Then Dim emptySpans As New List(Of Span)() For Each span As var In document.EnumerateChildrenOfType(Of Span)() If [String].IsNullOrEmpty(span.Text) Then emptySpans.Add(span) End If Next If emptySpans.Count = 0 Then Return End If For Each span As var In emptySpans span.Parent.Children.Remove(span) Next Dim modifiedRtf As String = New RtfFormatProvider().Export(document) Clipboard.SetData("Rich Text Format", modifiedRtf) End If End Sub
To reproduce: - Create a new winforms project. - Drop a RadRichTextEditor on the form. - Drop a button on the form. - In the button Click event add: radRichTextEditor1.ShowSpellCheckingDialog(); - Run the project. - Click the button - a message is displayed "The spelling check is complete". - Type some text with a spelling error in the rich text editor. - Click the button again - a System.InvalidOperationException exception occurs. Workaround: radRichTextEditor1.RichTextBoxElement.SpellCheckingDialog = new SpellCheckingDialog();
To reproduce: - Add RadRichTextEditor and RichTextEditorRibbonBar to a form. - Start the application and add some text. - Change the font size with the ribbon bar. - Select the text and open the mini toolbar.
When highlighting text inside the richtexteditor control I receive a null reference exception.
Drop a RadRichTextEditor and a WinForms button on a form. Set the text of the button to "&Activate" and show a message box in the button click handler. Run the program, and type some text - the button is activated whenever you try to type the letter "a" in the editor. Workarround: Inherit RadRichTextEditor and override IsInputChar method protected override bool IsInputChar(char charCode) { return true; }
Steps to reproduce: 1. Create a new project 2. Drop a RadRichTextEditor on the form 3. Run the project 4. Type some text 5. Press Ctrl+R to align the text right 6. Press Ctrl+L to align the text left. The text is left aligned, but the right aligned text is not cleared till the control is invalidated.
When you open the color dialog, "Add custom color", "Ok" and "Cancel" buttons are not completely visible. Currently the dialog box can't be re-sized making it hard for the user to use as the button names are not visible so the user can't be sure what is being clicked. See the attached fig.
As shown in the attached screen shot when as spell checking dialog is opened , "Close button is not seen on the form even though it is present. Spell checking dialog box needs to be re sized.
Launch the RichTextEditor and observe the button are not completely visible and some/ most of the dialog boxes cannot be re sized. --> Home Tab 1) Find/ Replace dialog box, button overlap the textboxes behind them 2) Change Styles , this dialog box cannot be re sized currently -->Insert Tab 1) Hyperlink dialog box, this dialog box cannot be re sized currently 2) BookMarks dialog box, this dialog box cannot be re sized currently 3) Cross Reference dialog box, this dialog box cannot be re sized currently 4) Format Code block Dialog box, this dialog box cannot be re sized currently 5) Insert Symbol dialog box, this dialog box cannot be re sized currently --> References tab 1) Manage Sources 2) Insert Caption 3) Cross reference --> Review tab 1) Spell check dialog box 2) Protect document
Run the RadRichTextEditor Right click on any image -> Text Wrapping -> More layout options (as shown in the attached fig MoreLayoutOptions.jpg) Observe that the more layout options doesn't show up most of the times.
1) Launch the RadRichTextEditor 2) Create a new file 3) go to insert tab and hit "Header" icon (Header & Footer section) 4) Notice the caret blinks on the top left corner of the document 5) Enter some text for ex: zzzz and notice text entered doesn't show up 5) At this point when you double click outside the header section the whole header and footer section is lost 6) Now double click on the header section again even though the header section is not visible. Still the entered text is not displayed and notice the cursor blinks at the top left corner of the header section 7) Press enter key, now the entered text is displayed.
Can't see undo and redo button on the editor.
Steps: 1) Launch the RichTextEditor 2) Clear the existing contents or open a new file (using File-> New) 3) Insert a table of any dimensions for ex: 2x2 4) Delete the above added table 5) Now try to insert a new table of any dimensions (For ex: 2x2) 6) You will get the following exception when you run the project using vs2010 Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index 7) In the demo application , you will see a Form1 error pop up opens up and makes the RichTextEditor completely blank