Posted 5 June 2018, 6:13 pm EST
Hello, there is way how to lock and avoid the change by user of width/height of column/row headers in GcSpreadSheet?
Forums Home / Spread / Spread for WPF/Silverlight
Posted by: sk.0911749090 on 5 June 2018, 6:13 pm EST
Posted 5 June 2018, 6:13 pm EST
Hello, there is way how to lock and avoid the change by user of width/height of column/row headers in GcSpreadSheet?
Posted 5 June 2018, 6:17 pm EST
To be more precisely, I mean to lock the width of column header and to lock the height of row header, not the widths of columns theirself neither the heights of rows.
Posted 6 June 2018, 11:18 pm EST
Hello,
You can use SetColumnResizable and SetRowResizable methods :
gcSpreadSheet1.Sheets[0].SetColumnResizable(0, GrapeCity.Windows.SpreadSheet.Data.SheetArea.ColumnHeader, false);
gcSpreadSheet1.Sheets[0].SetRowResizable(0, GrapeCity.Windows.SpreadSheet.Data.SheetArea.RowHeader, false);
Thanks,
Deepak Sharma
Posted 7 June 2018, 10:07 pm EST - Updated 29 September 2022, 6:11 am EST
Hello,
sorry for the missunderstanding. I want to prevent the corner header to be resized. Please see attached pciture.
Posted 7 June 2018, 11:28 pm EST
Hello,
You can use code as follows:
gcSpreadSheet1.Sheets[0].SetRowResizable(0, GrapeCity.Windows.SpreadSheet.Data.SheetArea.CornerHeader, false);
Thanks,
Deepak Sharma
Posted 10 June 2018, 6:13 pm EST
Hello, of course I did this setting before I sent the post but did not work. I got the exception again:
2018/06/11 09:10:07.875|1|Error|Procam.Gdm.Presentation.App.HandleException|Error ocurred: ‘The operation is not supported in the corner area.’:
at GrapeCity.Windows.SpreadSheet.Data.Worksheet.SetRowResizable(Int32 row, SheetArea sheetArea, Boolean value)
at Procam.Gdm.Controls.Canvas.UserControls.GdmSpreadSheet.OnGdmSpreadSheetLoaded(Object sender, RoutedEventArgs e) in c:\Workspaces\print3\Procam.Gdm.Controls\Canvas\UserControls\GdmSpreadSheet.cs:line 66
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
at System.Windows.BroadcastEventHelper.BroadcastEvent(DependencyObject root, RoutedEvent routedEvent)
at System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(Object root)
at MS.Internal.LoadedOrUnloadedOperation.DoWork()
at System.Windows.Media.MediaContext.FireLoadedPendingCallbacks()
at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)
at System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)|
I also tried:
gcSpreadSheet1.Sheets[0].SetRowResizable(-1, GrapeCity.Windows.SpreadSheet.Data.SheetArea.CornerHeader, false);
as for the corner the value is -1. But it does not work neither with 0 nor -1.
Posted 10 June 2018, 11:17 pm EST
Hello,
In that case you can hard code the height and width of rowheight and columnwidth. You can check if the row in column header or column in rowheader is being resized and then set the width/height, something like:
private void gcSpreadSheet1_MouseDown(object sender, MouseButtonEventArgs e)
{
HitTestInformation info = gcSpreadSheet1.HitTest(e.GetPosition(gcSpreadSheet1).X, e.GetPosition(gcSpreadSheet1).Y);
if (info.HitTestType == HitTestType.Corner)
{
if (info.HeaderInfo.InColumnResize && info.HeaderInfo.Column == 0)
{
e.Handled = true;
gcSpreadSheet1.Sheets[0].RowHeader.Columns[0].Width = 40;
}
if (info.HeaderInfo.InRowResize && info.HeaderInfo.Row == 0)
{
e.Handled = true;
gcSpreadSheet1.Sheets[0].ColumnHeader.Rows[0].Height = 40;
}
}
}
Thanks,
Deepak Sharma