Unplanned
Last Updated: 18 Sep 2025 15:03 by Emanuele
Created by: Martin
Comments: 7
Category: VirtualGrid
Type: Bug Report
3

Repro-steps:

  1. Use the code beneath.
  2. Run this form.
  3. 20 records are shown, the "AddNewRow" is shown.
  4. Select all records.
  5. Press <delete>
  6. 0 records are shown (as expected), the "AddNewRow" is invisible (unexpected).
  7. Close the program.
  8. Modify LoadTable(true) to LoadTable(false). Records will not be created..
  9. Run this form.
  10. 0 records are shown (as expected), the "AddNewRow" is invisible (unexpected).

Expected behavior:

  • Even when the dataTable or view has no rows, we should still be able to add new rows.

Observed behavior:

  • When datatable/view is empty, no new records are allowed to enter.

Please observe that Grid.UserAddedRow is not handled, but since we cannot even see the AddNewRow, it is not required for this bug.


	public partial class TestForm: Form
	{
		private readonly DataView _view;

		public TestForm()
		{
			InitializeComponent();

			_view = new DataView(LoadTable(true));
			_grid.ColumnCount = _view.Table.Columns.Count;
			_grid.RowCount = _view.Count;
			_grid.AllowAddNewRow = true;
			_grid.SelectionMode = VirtualGridSelectionMode.FullRowSelect;
		}

		static private DataTable LoadTable(bool fill)
		{
			var table = new DataTable();
			table.Columns.Add("Number", typeof(int));
			
			if (fill)
				for(int i = 0; i < 20; i++)
					table.Rows.Add(i);
			
			return table;
		}


		#region Windows Form Designer generated code

		/// <summary>
		/// Required method for Designer support - do not modify
		/// the contents of this method with the code editor.
		/// </summary>
		private void InitializeComponent()
		{
			this._grid = new Telerik.WinControls.UI.RadVirtualGrid();
			((System.ComponentModel.ISupportInitialize)(this._grid)).BeginInit();
			this.SuspendLayout();
			// 
			// _grid
			// 
			this._grid.Dock = System.Windows.Forms.DockStyle.Fill;
			this._grid.Location = new System.Drawing.Point(0, 0);
			this._grid.MultiSelect = true;
			this._grid.Name = "_grid";
			this._grid.SelectionMode = Telerik.WinControls.UI.VirtualGridSelectionMode.FullRowSelect;
			this._grid.Size = new System.Drawing.Size(800, 450);
			this._grid.TabIndex = 0;
			this._grid.CellValueNeeded += new Telerik.WinControls.UI.VirtualGridCellValueNeededEventHandler(this._grid_CellValueNeeded);
			this._grid.UserDeletedRow += new Telerik.WinControls.UI.VirtualGridRowsEventHandler(this._grid_UserDeletedRow);
			// 
			// TestForm
			// 
			this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
			this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
			this.ClientSize = new System.Drawing.Size(800, 450);
			this.Controls.Add(this._grid);
			this.Name = "TestForm";
			this.Text = "TestForm";
			((System.ComponentModel.ISupportInitialize)(this._grid)).EndInit();
			this.ResumeLayout(false);

		}

		#endregion

		private Telerik.WinControls.UI.RadVirtualGrid _grid;

		private void _grid_CellValueNeeded(object sender, Telerik.WinControls.UI.VirtualGridCellValueNeededEventArgs e)
		{
			if (e.ColumnIndex < 0)
				return;

			if (e.RowIndex < 0)
			{
				e.FieldName = _view.Table.Columns[e.ColumnIndex].ColumnName;
				if (e.RowIndex == RadVirtualGrid.HeaderRowIndex)
					e.Value = e.FieldName;
			}
			else if (e.RowIndex < _view.Count)
			{
				e.Value = _view[e.RowIndex][e.ColumnIndex];
			}
		}

		private void _grid_UserDeletedRow(object sender, Telerik.WinControls.UI.VirtualGridRowsEventArgs e)
		{
			var rowIndexes = e.RowIndices.Distinct().OrderByDescending(i => i).ToList(); // Off topic: I have seen duplicate row indexes in this row collection. And unsorted. Is that by design?
			if (rowIndexes.Count == _view.Count)
			{
				_view.Table.Rows.Clear();
			}
			else
			{
				foreach(var index in rowIndexes)
					_view[index].Delete();
			}

			_grid.RowCount = _view.Count;
		}
	}

Unplanned
Last Updated: 18 Sep 2025 11:59 by ADMIN
Created by: Rafał
Comments: 1
Category: GanttView
Type: Feature Request
0

Currently, there is LinkChanged event.

It would be useful if there is also LinkChanged event that allows to be canceled upon some condition.

Unplanned
Last Updated: 15 Sep 2025 13:48 by ADMIN
Created by: Steinar
Comments: 1
Category: PdfViewer
Type: Feature Request
0
 
Unplanned
Last Updated: 02 Sep 2025 14:22 by ADMIN

In this particular case, the control is in Self-Referencing binding mode. When we perform drag-and-drop operations multiple times, the application enters an invalid state and hangs. Additionally, during drag-and-drop operations, moving several nodes can lead to collapsing and hiding the parent or other nodes randomly.

Unplanned
Last Updated: 25 Aug 2025 11:20 by ADMIN

Steps to reproduce:

1. Bind the grid to BindingList

2. Call BestFitColumns method in form's constructor

3. Use Fluent/Crystal theme

4. Rebind the grid by setting DataSource=null

5. Exception is thrown

Stack trace:

en Telerik.WinControls.UI.BestFitHelper.SetColumnWidth(GridViewColumn column, Single desiredWidth)
   en Telerik.WinControls.UI.BestFitHelper.BestFitColumnCore(GridViewColumn column, BestFitColumnMode mode)
   en Telerik.WinControls.UI.BestFitHelper.ProcessRequests()
   en Telerik.WinControls.UI.GridTableElement.UpdateAll()
   en Telerik.WinControls.UI.GridTableElement.UpdateViewCore(Object sender, DataViewChangedEventArgs args)
   en Telerik.WinControls.UI.GridTableElement.UpdateView(Object sender, DataViewChangedEventArgs args)
   en Telerik.WinControls.UI.GridTableElement.ProcessTemplateEvent(GridViewEvent eventData)
   en Telerik.WinControls.UI.GridTableElement.Telerik.WinControls.UI.IGridViewEventListener.ProcessEvent(GridViewEvent eventData)
   en Telerik.WinControls.UI.GridViewEventProcessEntity.ProcessCollection(GridViewEvent gridEvent, PriorityWeakReferenceList list, GridEventProcessMode processMode)
   en Telerik.WinControls.UI.GridViewEventProcessEntity.ProcessEvent(GridViewEvent gridEvent)
   en Telerik.WinControls.UI.GridViewSynchronizationService.NotifyListeners(GridViewEvent gridEvent)
   en Telerik.WinControls.UI.GridViewSynchronizationService.FlushEvents()
   en Telerik.WinControls.UI.GridViewSynchronizationService.DispatchEvent(GridViewEvent gridEvent)
   en Telerik.WinControls.UI.GridViewSynchronizationService.DispatchEvent(GridViewTemplate template, GridViewEvent eventData, Boolean postUI)
   en Telerik.WinControls.UI.GridViewTemplate.DispatchEvent(GridViewEvent gridEvent, Boolean postUI)
   en Telerik.WinControls.UI.GridViewTemplate.DispatchDataViewChangedEvent(Object sender, DataViewChangedEventArgs args)
   en Telerik.WinControls.UI.GridViewTemplate.OnViewChanged(Object sender, DataViewChangedEventArgs e)
   en Telerik.WinControls.UI.MasterGridViewTemplate.OnViewChanged(Object sender, DataViewChangedEventArgs e)
   en Telerik.WinControls.UI.GridViewTemplate.CollectionView_CollectionChanged(Object sender, NotifyCollectionChangedEventArgs e)
   en Telerik.WinControls.Data.RadCollectionView`1.OnCollectionChanged(NotifyCollectionChangedEventArgs args)
   en Telerik.WinControls.Data.RadDataView`1.RebuildData(Boolean notify)
   en Telerik.WinControls.Data.RadDataView`1.RefreshOverride()
   en Telerik.WinControls.Data.RadDataView`1.ProcessCollectionChanged(NotifyCollectionChangedEventArgs args)
   en Telerik.WinControls.Data.RadCollectionView`1.source_CollectionChanged(Object sender, NotifyCollectionChangedEventArgs e)
   en Telerik.WinControls.Data.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)
   en Telerik.WinControls.Data.RadListSource`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
   en Telerik.WinControls.Data.RadListSource`1.EndUpdate(Boolean notifyUpdates)
   en Telerik.WinControls.Data.RadListSource`1.Initialize()
   en Telerik.WinControls.Data.RadListSource`1.Bind(Object dataSource, String dataMember)
   en Telerik.WinControls.Data.RadListSource`1.set_DataSource(Object value)
   en Telerik.WinControls.UI.GridViewTemplate.set_DataSource(Object value)
   en Telerik.WinControls.UI.RadGridView.set_DataSource(Object value)

Unplanned
Last Updated: 25 Aug 2025 06:59 by ADMIN
Created by: Svitlana
Comments: 1
Category: PictureBox
Type: Bug Report
0

Overview

A bug found in the Telerik PictureBox control for Windows Forms. The issue specifically affects the rendering of SVG graphics, where the text element is being duplicated by the viewer.

Affected Component

- Product: Telerik UI for WinForms
- Control: `RadPictureBox'
- Version: 2025.02
- Platform: Windows Forms (.NET Framework)

Steps to Reproduce

1. Run the application from provided MCVE
2. Observe the text in SVG preview: the text is duplicated twice 
3. Zoom in the view
4. Observe the text in SVG preview: there are many instances of the same text

Expected Behavior

The Telerik PictureBox should render only a single instance of the text from SVG file.

Actual Behavior

PictureBox shows many instances of the same text and the specifix number of them depends on the zoom level.

Sample Files

- ✅ `example.svg`: A SVG file that renders correctly in Microsoft Edge. 
- ✅ `browser.png`: Screenshot of how the SVG file looks in Microsoft Edge. 
- ✅ `browser_after_zoom.png`: Screenshot of how the SVG file looks in Microsoft Edge after 150% zoom. 
- ❌ `telerik.png`: Screenshot of how the same file looks in the Telerik PictureBox.
- ❌ `telerik_after_zoom.png`: Screenshot of how the same file looks in the Telerik PictureBox after zooming in.

Environment

| Component      | Version            |
|----------------|--------------------|
| Telerik UI     | 2025.2.520.48      |
| .NET Framework | .NET Framework 4.8 |
| OS             | Windows 11         |

Unplanned
Last Updated: 13 Aug 2025 11:20 by ADMIN
Created by: Martin
Comments: 1
Category: TextBox
Type: Feature Request
1

When I create 100 TextBox's, it take about 5 ms. So that is 0,05 ms. per TextBox.

When I create 100 RadTextBox's, it takes about 1335 ms. So that is 13,35 ms. per RadTextBox.

That is a factor 267 difference!

I know a RadTextBox is much more complex that a TextBox, it creates many sub controls / instances / objects / etc, but still. I must create 60 miljoen array's of 100 bytes to get the same delay / performance, so object creation cannot be it.

Now I have to requests:

  1. Make the RadTextBox faster (and while you are on it, maybe take a look at the other controls). Maybe with some lazy loading, reusing of objects, etc.
       ...or...
  2. Make the controls resettable. For example: Give them a IResettableControl interface (with method void Reset()). Resetting the control brings it back to it initials state (all properties to their default state, all users event handlers removed from the events, etc.

When option 2 is implemented, the control can be place in a pool an be reused. 

Background info: I create a lot of controls in a "factory" based on an enum ControlType (with elements like TextBox, CheckBox, etc.) This factory could facilitate pooling.

Unplanned
Last Updated: 12 Aug 2025 08:40 by ADMIN

When the RadSpreadsheet is docked and the TelerikMetroTouch theme is applied, the Vertical ScrollBar is not fully visible.

Unplanned
Last Updated: 05 Aug 2025 13:29 by ADMIN
 Currently, the auto complete function works by searching only in the RadCheckedListDataItem.Text and does not consider the DescriptionText.
Unplanned
Last Updated: 01 Aug 2025 14:04 by ADMIN
Created by: Tony
Comments: 1
Category: Scheduler/Reminder
Type: Feature Request
1
Expose a way to define working hours per resource.
Unplanned
Last Updated: 30 Jul 2025 08:07 by ADMIN
When updating, adding, or removing a row in Load-On-Demand Hierarchy, we will need to force the control to refresh. This will trigger the control to render all cells again.
Unplanned
Last Updated: 29 Jul 2025 14:05 by ADMIN
Created by: AndreaT
Comments: 1
Category: PdfViewer
Type: Bug Report
1
Text is not rendered due to a missing font. In this case, the font is ArialBoldItalic, which the control could not find. 
Unplanned
Last Updated: 28 Jul 2025 13:22 by ADMIN
In the following scenario, we clicked on the GridViewSelectColumn header checkbox, which selects all the rows in the RadGridView. This will trigger the SelectionChanging event of the control. Canceling the event will cancel the whole operation. There is no API to remove specific rows from being selected in this operation.
Unplanned
Last Updated: 24 Jul 2025 14:14 by ADMIN
Created by: Emanuele
Comments: 1
Category: VirtualGrid
Type: Bug Report
1

Pin columns cut the content of custom cells.

Unplanned
Last Updated: 23 Jul 2025 14:13 by ADMIN
Created by: Pascal
Comments: 3
Category: UI for WinForms
Type: Bug Report
0

In the Visual Theme Builder (fresh installed Telerik UI for WinForms) you'll get an error because the directory "VbsRecoveryData" seems to be missing. Creating the directory before "package.Compress(path)" fixes this for me.


Unplanned
Last Updated: 23 Jul 2025 12:56 by ADMIN

I want to choose columns by checkboxes, something like this:

 

Unplanned
Last Updated: 22 Jul 2025 13:31 by ADMIN
Unplanned
Last Updated: 16 Jul 2025 13:23 by ADMIN
In this scenario, the RadDateTimePicker control is set in the following way:

public Form1() { InitializeComponent(); this.radDateTimePicker1.MaskProviderCreated += RadDateTimePicker1_MaskProviderCreated; this.radDateTimePicker1.DateTimePickerElement.ShowCurrentTime = false; this.radDateTimePicker1.Format = System.Windows.Forms.DateTimePickerFormat.Custom; this.radDateTimePicker1.Culture = new System.Globalization.CultureInfo("en-US"); this.radDateTimePicker1.CustomFormat = "hh:mm:ss tt";
this.radDateTimePicker1.Value = new System.DateTime(2025, 6, 12, 12, 4, 34, 562); }

When we focus the text editor daytime part(last part) we can't change it from PM to AM by clicking the A key. However, the opposite way is working. When we have AM and clicking the P key will change it to PM.
Unplanned
Last Updated: 16 Jul 2025 11:31 by ADMIN

As the Subject states, we are running into issues where the combo is not fully displaying the first time it is opened.  Run the form on high DPI, open the popup, and scroll to the botom:

Unplanned
Last Updated: 16 Jul 2025 08:27 by ADMIN
The Vertical Scroll Bar's range is not properly updating every time after collapsing a node programmatically. In our case, we have several levels of node element hierarchy. Calling the Collapse() method of the first-level node will not correctly calculate the vertical scrollbar range.
1 2 3 4 5 6