To reproduce: run the attached sample project and activate the editor for the cell. You will notice that the row's height is now adjusted and single line text is displayed. It seems that the issue occurs because of the set Font property of the grid. Workaround: private void RadGridView1_CellEditorInitialized(object sender, Telerik.WinControls.UI.GridViewCellEventArgs e) { e.Row.MinHeight = e.Row.Height + 3; RadTextBoxEditor tbEditor = e.ActiveEditor as RadTextBoxEditor; if (tbEditor != null) { tbEditor.Multiline = true; } } private void radGridView1_CellEndEdit(object sender, GridViewCellEventArgs e) { e.Row.MinHeight = 0; }
To reproduce: add a RadGridView with several columns. Set the Enabled property to false. Try to open the Property Builder and you will notice that the Columns are disabled in it. Workaround: set the Enabled property to false at run time. Thus, it would be possible to manipulate the columns via the Property Builder at design time.
After populating the RadGridView, unbound in this example, I use RadGridView1.ClearSelection. This works when using some themes such as Crystal and Office2013, but not others, like Fluent. See attached..... believe me that the code is EXACTLY the same for each, just the application theme is difference. This should be an easy one to replicate.
Use attached to reproduce. Workaround: Set the TableHeaderHeight again after loading the layout.
Use attached to reproduce. - Use a 125% and 150% monitor for reproducing. - This should be tested on Windows 10 1803 (Spring Update) as well. Workaround: private void RadGridView1_ColumnChooserCreated(object sender, Telerik.WinControls.UI.ColumnChooserCreatedEventArgs e) { e.ColumnChooser = new MyColumnChooser(this.radGridView1.MasterTemplate, radGridView1.GridViewElement); } public partial class MyColumnChooser : GridViewColumnChooser { public MyColumnChooser() { InitializeComponent(); } public MyColumnChooser(GridViewTemplate template, RadGridViewElement rootElement) : base(template, rootElement) { } SizeF oldDpi = new SizeF(1, 1); protected override void HandleDpiChanged() { base.HandleDpiChanged(); SizeF descale = new SizeF(1f / this.FormElement.DpiScaleFactor.Width, 1f / this.FormElement.DpiScaleFactor.Height); this.Scale(descale); var dpi = NativeMethods.GetMonitorDpi(Screen.FromRectangle(this.Bounds), NativeMethods.DpiType.Effective); if (oldDpi != dpi) { SizeF sz = new SizeF(dpi.Width / oldDpi.Width, dpi.Height / oldDpi.Height); this.Scale(dpi); } oldDpi = dpi; } }
To reproduce: please refer to the attached sample project and gif file. Workaround: add the column programmatically, not at design time.
To reproduce: - Create a self reference grid and set the columns width so the horizontal scrollbar is visible. - Scroll to the right and filter by the last column, - Type a single character, the the edited cell is now changed. Workaround: class MyFilterCell : GridFilterCellElement { protected override Type ThemeEffectiveType { get { return typeof(GridFilterCellElement); } } public MyFilterCell(GridViewDataColumn column, GridRowElement row) : base(column, row) { } public override bool IsCompatible(GridViewColumn data, object context) { return false; } }
To reproduce: - Filter a self-referencing grouped grid. Workaround: private void _rgvFreeCodeValues_FilterChanged(object sender, GridViewCollectionChangedEventArgs e) { foreach (var row in RgvFreeCodeValues.Rows) row.IsExpanded = false; } private void _rgvFreeCodeValues_FilterChanging(object sender, GridViewCollectionChangingEventArgs e) { foreach (var row in RgvFreeCodeValues.Rows) row.IsExpanded = true; }
To reproduce: run the attached sample project. Type "chef" in the search box and then try to sort some of the columns. Click the header cell several times and as a result the exception will occur. Workaround: public class CustomGrid : RadGridView { public new object DataSource { get { return (object)base.DataSource; } set { GridViewSearchRowInfo.Cancel = true; Thread.Sleep(100); base.DataSource = null; this.EnableFiltering = false; base.DataSource = value; this.EnableFiltering = true; base.CurrentRow = null; } } }
To reproduce: Please run the sample project and follow the steps from the gif file. Workaround: private void radGridView1_SizeChanged(object sender, EventArgs e) { this.radGridView1.MasterTemplate.Refresh(); } public class Grid : RadGridView { public override string ThemeClassName { get { return typeof(RadGridView).FullName; } } protected override void OnResize(EventArgs e) { object value = null; if (this.ActiveEditor != null) { value = this.ActiveEditor.Value; } base.OnResize(e); if (value != null && this.CurrentCell != null) { this.CurrentCell.Value = value; } } }
How to reproduce: Create a DPI-aware application and run it on a Windows 10 machine on 125%, the text inside the editors is smaller compared to the text in cells which are not in edit mode. Workaround: private void RadGridView1_CellEditorInitialized(object sender, GridViewCellEventArgs e) { BaseInputEditor editor = e.ActiveEditor as BaseInputEditor; if (editor != null) { RadTextBoxItem item = editor.EditorElement.FindDescendant<RadTextBoxItem>(); if (item != null) { item.HostedControl.Font = this.radGridView1.GridViewElement.GetScaledFont(this.radGridView1.GridViewElement.DpiScaleFactor.Height); } } }
To reproduce: run the attached sample project and click the 'export' button. The exported file fill be automatically opened. If you select several cells from the UnitPrice column you will see at the bottom that the cell values ' total is displayed. However, if you include the summary item's value in the selection its value is not taken into consideration. If you pay attention to the cell's format, it will be General instead of custom numeric one. Workaround: Private Sub spreadExporter_CellFormatting(sender As Object, e As Telerik.WinControls.Export.CellFormattingEventArgs) If e.GridRowInfoType = GetType(GridViewSummaryRowInfo) AndAlso e.GridCellInfo.ColumnInfo.Name = "DecimalColumn" Then Dim cellSelection As CellSelection = TryCast(e.CellSelection, CellSelection) Dim cellFormat As New CellValueFormat("### ### ###.00") If cellFormat IsNot Nothing Then cellSelection.SetValue(Decimal.Parse(cellSelection.GetValue().Value.RawValue.Replace(" ", ""))) cellSelection.SetFormat(cellFormat) End If End If End Sub
To reproduce: private void radButton1_Click(object sender, EventArgs e) { radGridView1.MasterView.TableSearchRow.SelectNextSearchResult(); } Check the index in the search textbox, it is not updated. Workaround: var cell = radGridView1.TableElement.FindDescendant<GridSearchCellElement>(); if (cell != null) { cell.FindNextButton.PerformClick(); }
Workaround: adjust the cell/row spacing this.radGridView1.TableElement.CellSpacing = -2; this.radGridView1.TableElement.RowSpacing = -2;
To reproduce: run the attached sample project and press the "stream export" button. Workaround: use the GridViewSpreadExport https://docs.telerik.com/devtools/winforms/gridview/exporting-data/spread-export Dim spreadExporter As GridViewSpreadExport = New GridViewSpreadExport(RadGridView1) Dim exportRenderer As New SpreadExportRenderer() Dim fileName As String = "..\..\Export" & DateTime.Now.ToLongTimeString().Replace(":", "_") + ".xlsx" spreadExporter.RunExport(fileName, exportRenderer)
Use attached to reproduce. Workaround: this.LoadFieldList(hiddenGrid.MasterTemplate); this.FieldList.Add(new Telerik.Data.Expressions.ExpressionItem() { Name = "Test", Description = "Test", Syntax = "Test", Type = Telerik.Data.Expressions.ExpressionItemType.Field, Value = "Test" });
Please refer to the attached sample project. The ResizeColumnsProportionally.gif illustrates the correct behavior of columns resizing. However, if you make a certain column with fixed size, the columns resizing is not proportional any more. The ColumnsWidthNOTAdjustedProportionally.gif demonstrates better the wrong behavior. Workaround: handle the SizeChanged event and adjust the columns' width property programmatically in order to obtain the desired widths.
To reproduce: this.radGridView1.SummaryRowsBottom.Insert(0, summaryRowItem2); this.radGridView1.SummaryRowsBottom.Move(2, 0); Workaround: Remove all items and add them back with a spesific order.
Please refer to the attached sample project and follow the steps illustrated in the gif file. Note: the same behavior is observed with the CellValidating event in the new row. Workaround: use the RowValidating event instead: private void radGridView1_RowValidating(object sender, Telerik.WinControls.UI.RowValidatingEventArgs e) { if (e.Row is Telerik.WinControls.UI.GridViewNewRowInfo && e.Row.Cells["Id"].Value == null) { this.radGridView1.MasterView.TableAddNewRow.CancelAddNewRow(); this.radGridView1.CurrentRow = this.radGridView1.MasterView.TableAddNewRow; } }
NOTE: The CellValidating event is fired multiple times as well when you select a new tab in RadDock. There is a second project attached.
To reproduce: run the project, select the grid and press Tab. You will notice a message box for the first grid which won't be shown for the second in the popup.