Workaround: create a custom input behavior class and manually handle the navigation when holding the Shift key public partial class SpreadsheetForm : Telerik.WinControls.UI.RadForm { public SpreadsheetForm() { InitializeComponent(); FieldInfo behaviorFi = typeof(RadSpreadsheetElement).GetField("inputHandler", BindingFlags.Instance | BindingFlags.NonPublic); behaviorFi.SetValue(this.radSpreadsheet1.SpreadsheetElement, new CustomSpreadsheetInputBehavior(this.radSpreadsheet1.SpreadsheetElement)); } } public class CustomSpreadsheetInputBehavior : SpreadsheetInputBehavior { public CustomSpreadsheetInputBehavior(RadSpreadsheetElement element) : base(element) { } public override void ProcessKeyDown(KeyEventArgs e) { base.ProcessKeyDown(e); if (e.Shift) { switch (e.KeyCode) { case Keys.Left: this.Spreadsheet.ActiveWorksheetEditor.Commands.UpdateActiveSelectionRangeCommand.Execute(MovementType.MoveToPreviousColumn); break; case Keys.Up: this.Spreadsheet.ActiveWorksheetEditor.Commands.UpdateActiveSelectionRangeCommand.Execute(MovementType.MoveToPreviousRow); break; case Keys.Right: this.Spreadsheet.ActiveWorksheetEditor.Commands.UpdateActiveSelectionRangeCommand.Execute(MovementType.MoveToNextColumn); break; case Keys.Down: this.Spreadsheet.ActiveWorksheetEditor.Commands.UpdateActiveSelectionRangeCommand.Execute(MovementType.MoveToNextRow); break; } } } }
The control can be resized in the designer. The resize operation starts with a slight delay and it is necessary to wait for this initial delay. From then on the control can be freely resized. The attached gif file illustrates this. Workaround: 1. Set the size using the property grid 2. Add a panel and dock the control to fill the panel, then resize the panel
Ideally we should expose the events in the RadPrintDocument object. Workaround handling the PrintPreview method: private void button1_Click(object sender, EventArgs e) { RadPrintDocument printDocument = new RadPrintDocument(); IPrintable printManager = typeof(RadSpreadsheetElement).GetProperty("PrintManager", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(this.radSpreadsheet1.SpreadsheetElement) as IPrintable; printDocument.AssociatedObject = printManager; printDocument.BeginPrint += PrintDocument_BeginPrint; printDocument.PrintPage += PrintDocument_PrintPage; printDocument.EndPrint += PrintDocument_EndPrint; printDocument.QueryPageSettings += PrintDocument_QueryPageSettings; SpreadsheetPrintPreviewDialog printPreviewDialog = new SpreadsheetPrintPreviewDialog(printDocument); printPreviewDialog.ThemeName = this.radSpreadsheet1.ThemeName; printPreviewDialog.ShowDialog(); } private void PrintDocument_QueryPageSettings(object sender, System.Drawing.Printing.QueryPageSettingsEventArgs e) { } private void PrintDocument_EndPrint(object sender, System.Drawing.Printing.PrintEventArgs e) { } private void PrintDocument_BeginPrint(object sender, System.Drawing.Printing.PrintEventArgs e) { } private void PrintDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { }
How to reproduce: check the attached project and the remaining memory after disposing the forms.