Hi,
Using the last release of RadSpreadsheet, I get an exception when the first row is hidden when scrolling with the mousewheel. Attached is a demo.
Thanks,
Megan
I have implemented the ListDataValidationRule code to add a dropdownlist to the spreadsheet. Based on the code I can find and the searching I have conducted, it seems to be correct, however the dropdown does not appear in the control.
The dropdown list does appear in Excel when I export the file.
Dim Context As ListDataValidationRuleContext = New ListDataValidationRuleContext(CurrentWorksheet, CurrentCellIndex)
Add a RadSpreadsheet on the form and try resizing it at design time. You will notice that the control is resized after a considerable delay.
If you Dock the control to Fill and try resizing the form at run you will notice that the layout is incorrect. The attached gif file illustrates the obtained behavior.
Workaround: update the layout after resizing:
public RadForm1()
When you set the AutoSize property to true, the control becomes enormous - Size (5002, 5002).
There is no specific logic for auto-sizing the control. We should either remove the AutoSize property or size the control according to the rows/columns it uses.
Please follow the steps:
1. Run the attached sample project.
2. Move the form to a monitor with 125% DPI scaling.
3. Resize the form to make the spreadsheet bigger. You will notice that the column/row headers are missing for the last column/row headers.
I have loaded an excel file into the spreadsheet control from our document database. When a user makes changes and clicks the save button I would like to handle a save process back to our document database of the file.
If a save function can be raised I can save to the document database
If a SavAs fucntion can be raised I can prompt the user to create a new version
Can the control have these two features added please?
Hello,
So here's what happens. I create a workbook and a worksheet in that wb which I assign as the workbook of a RadSpreadSheet by RadSpreadSheet..Workbook = wb
The first time I assign a name to the first (and only sheet) created in the creation of the wb, the name does appear on that sheet.
Then some code takes this workbook ByVal, creates a new Sheet, makes that sheet the wb's ActiveWorksheet and then changes the ws's name.
You can see in the debugging that the worksheet does have the new name i put there ("2018-05"), but visually this 2nd worksheet has the default name "sheet 2".
Then that wb which is returned by the function is assigned as the RadSpreadSheet's workbook
If I run the code again, so a 3rd sheet is created, then the 3rd sheet will visually have the default name "sheet 3", however in the debugger it says "2018-06" as its name; but most importantly, now sheet 2 has magically changed to what I was seeing its name to be in the debugger ("2018-05").
I'm assuming that If I'm changing the sheet names at runtime, I need to call some method on the Workbook element or something like that in order to update the names. I just couldn't find which method to call.
Best regards,
Ioannis Mamalikidis.
Hello,
So, I'm testing the Telerik suite, part of which is the RadSpreadSheet. I'm currently using the 30 days trial.
So, when I'm debugging it and I'm instantiating a new form that contains the RadSpreadSheet, the programme will about 50% of the time create an exception of object reference not set to an instance of an object
Now, I've only noticed this with forms that contain a radspreadsheet but it could have nothing to do with it.
What always happens before I get the exception is that the reminder to buy a Telerik License appears (the programme halts until I choose an option) and when the dialogue disappears, the exception happens.
Please note that if I just push "F5" again in VS, without changing anything anywhere, so after the crash immediately debug (F5) again, the exception will not occur.
To reproduce: - Add a spreadsheet and add ribbon bar from the smart tag. - Start the application. Workaround: protected override void OnShown(EventArgs e) { base.OnShown(e); var parameter = 11; this.radSpreadsheet1.SpreadsheetElement.CommandDescriptors.SetFontSize.Command.Execute(parameter); FontFamilyInfo parameter1 = new FontFamilyInfo(new System.Windows.Media.FontFamily("Calibri")); this.radSpreadsheet1.SpreadsheetElement.CommandDescriptors.SetFontFamily.Command.Execute(parameter1); }
To reproduce: please refer to the attached gif file demonstrating how to replicate the problem with the Demo application. Scroll with the mouse wheel and you will notice the the row index disappears until you click a cell. Using the thumb will behave as expected. Workaround: this.radSpreadsheet1.SpreadsheetElement.VerticalScrollBar.ValueChanged+=VerticalScrollBar_ValueChanged; private void VerticalScrollBar_ValueChanged(object sender, EventArgs e) { this.radSpreadsheet1.SpreadsheetElement.InvalidateMeasure(true); }
Set the Print Area as described here: https://docs.telerik.com/devtools/document-processing/libraries/radspreadprocessing/features/worksheetpagesetup
RadSpreadsheet must support printing using RadPrintDocument.
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) { }
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; } } } }