Unplanned
Last Updated: 08 Jul 2026 13:18 by ADMIN
Created by: Al
Comments: 3
Category: RichTextEditor
Type: Feature Request
1
 
Unplanned
Last Updated: 29 Jun 2026 08:59 by ADMIN
Created by: Simon
Comments: 1
Category: Chat
Type: Feature Request
0

Add support for resizing the RadChat input text box, allowing users to adjust its height/width by dragging its top edge. This would make it easier to compose longer messages and provide a more flexible chat experience. The control should allow users to set the input area to their preferred size.

Unplanned
Last Updated: 12 Jun 2026 13:27 by ADMIN
ADMIN
Created by: Nikolay
Comments: 20
Category: ChartView
Type: Feature Request
18
3D Charts will be a nice addition to the WinForms suite
Unplanned
Last Updated: 30 Apr 2026 18:35 by ADMIN

I was trying to move the NewRow to the bottom of the RadVirtualGrid. This is also supported by its big brother RadGridView. I have now learned that this is not supported by RadVirtualGrid.

Hereby my request: Please support this!

I've created a Harmony patch (which works for me); it might help you if you decide to support it:

	static class MoveNewRowToBottom
	{
		[HarmonyPatch(typeof(VirtualGridTableElement), "InvalidatePinnedRows")]
		static class VirtualGridTableElement_InvalidatePinnedRows
		{
			static private bool _isInvalidating;

			static private bool Prefix(VirtualGridTableElement __instance)
			{
				if (_isInvalidating)
					return false;
				_isInvalidating = true;

				__instance.ViewElement.TopPinnedRows.DisposeChildren();
				__instance.ViewElement.BottomPinnedRows.DisposeChildren();

				var viewInfo = __instance.ViewInfo;
				var rowsViewState = __instance.RowsViewState;
				var topPinnedItems = rowsViewState.TopPinnedItems;
				var bottomPinnedItems = rowsViewState.BottomPinnedItems;

				if (viewInfo.ShowFilterRow)
					if (!topPinnedItems.Contains(RadVirtualGrid.FilterRowIndex) && !bottomPinnedItems.Contains(RadVirtualGrid.FilterRowIndex))
						rowsViewState.SetPinPosition(RadVirtualGrid.FilterRowIndex, PinnedRowPosition.Top);

				if (viewInfo.ShowNewRow)
					if (!topPinnedItems.Contains(RadVirtualGrid.NewRowIndex) && !bottomPinnedItems.Contains(RadVirtualGrid.NewRowIndex))
						rowsViewState.SetPinPosition(RadVirtualGrid.NewRowIndex, PinnedRowPosition.Top);

				if (viewInfo.ShowHeaderRow)
					if (!topPinnedItems.Contains(RadVirtualGrid.HeaderRowIndex) && !bottomPinnedItems.Contains(RadVirtualGrid.HeaderRowIndex))
						rowsViewState.SetPinPosition(RadVirtualGrid.HeaderRowIndex, PinnedRowPosition.Top);

				var elementProvider = __instance.RowScroller.ElementProvider;

				var topPinnedRows = __instance.ViewElement.TopPinnedRows;
				foreach (int topPinnedRow in topPinnedItems.SortTopRowIndexes())
				{
					VirtualGridRowElement pinnedRow = (VirtualGridRowElement)elementProvider.GetElement(topPinnedRow, null);
					topPinnedRows.Children.Add(pinnedRow);
					pinnedRow.Attach(topPinnedRow, null);
				}

				var bottomPinnedRows = __instance.ViewElement.BottomPinnedRows;
				foreach (int bottomPinnedRow in bottomPinnedItems.SortBottomRowIndexes())
				{
					VirtualGridRowElement pinnedRow = (VirtualGridRowElement)elementProvider.GetElement(bottomPinnedRow, null);
					bottomPinnedRows.Children.Add(pinnedRow);
					pinnedRow.Attach(bottomPinnedRow, null);
				}

				_isInvalidating = false;
				return false;
            }
		}

		static private IEnumerable<int> SortTopRowIndexes(this ReadOnlyCollection<int> topRowIndexes)
		{
			var specialRowIndex = topRowIndexes.Where(index => index < 0).ToList();
			if (specialRowIndex.Contains(RadVirtualGrid.HeaderRowIndex))
				yield return RadVirtualGrid.HeaderRowIndex;
			if (specialRowIndex.Contains(RadVirtualGrid.NewRowIndex))
				yield return RadVirtualGrid.NewRowIndex;
			if (specialRowIndex.Contains(RadVirtualGrid.FilterRowIndex))
				yield return RadVirtualGrid.FilterRowIndex;
			foreach (var index in topRowIndexes.Where(index => index >= 0))
				yield return index;
		}

		static private IEnumerable<int> SortBottomRowIndexes(this ReadOnlyCollection<int> bottomRowIndexes)
		{
			foreach (var index in bottomRowIndexes.Where(index => index >= 0))
				yield return index;
			var specialRowIndex = bottomRowIndexes.Where(index => index < 0).ToList();
			if (specialRowIndex.Contains(RadVirtualGrid.FilterRowIndex))
				yield return RadVirtualGrid.FilterRowIndex;
			if (specialRowIndex.Contains(RadVirtualGrid.NewRowIndex))
				yield return RadVirtualGrid.NewRowIndex;
			if (specialRowIndex.Contains(RadVirtualGrid.HeaderRowIndex))
				yield return RadVirtualGrid.HeaderRowIndex;
		}
	}

Unplanned
Last Updated: 14 Apr 2026 11:09 by ADMIN
Created by: Dan
Comments: 1
Category: DateTimePicker
Type: Feature Request
0

Implement support for UI Automation. When the control is focused, Windows Narrator will read the AccessibleName property if set.

Unplanned
Last Updated: 25 Mar 2026 09:23 by ADMIN
Created by: Julian
Comments: 1
Category: GridView
Type: Feature Request
1
Currently, the PageViewMode property only works at the 1 level. For example, if we set ExplorerBar to the RadGridView PageViewMode property, levels after 1 will have StripView.
Unplanned
Last Updated: 16 Mar 2026 08:40 by ADMIN
Unplanned
Last Updated: 13 Feb 2026 15:44 by ADMIN
Created by: Paweł Korczak
Comments: 1
Category: SyntaxEditor
Type: Feature Request
0
Provide option to register taggers without using generic types in Progress Open Edge projects.
Unplanned
Last Updated: 11 Feb 2026 12:30 by ADMIN
Created by: Robert
Comments: 1
Category: AIPrompt
Type: Feature Request
1
Add a LocalizationProvider for the strings used in the control. 
Unplanned
Last Updated: 02 Feb 2026 15:20 by ADMIN
Created by: Sami Aljafar
Comments: 4
Category: UI Framework
Type: Feature Request
8

			
Unplanned
Last Updated: 21 Jan 2026 12:06 by ADMIN
Created by: Chris
Comments: 1
Category: Map
Type: Feature Request
0
Expose a way to expand the cluster without zooming.
Unplanned
Last Updated: 16 Dec 2025 09:37 by ADMIN
By default, in the hierarchy RadGridView, filtering the control will show the child row that matches the filtering criteria, along with its parent. The parent row itself could not match the filtering descriptor, which could lead to confusion. We could extend the current functionality of the control and expose a way to hide the parent in this case.
Unplanned
Last Updated: 18 Nov 2025 09:10 by ADMIN
Created by: Remco
Comments: 1
Category: Scheduler/Reminder
Type: Feature Request
0
The control uses DateTime.Now. The RadScheduler control can be enhanced by adding support for the TimeProvider class in its date-time calculations.
Unplanned
Last Updated: 20 Oct 2025 07:44 by ADMIN
Created by: Fabian
Comments: 1
Category: Chat
Type: Feature Request
0
Expose HyperlingClicked event.
Unplanned
Last Updated: 13 Oct 2025 12:23 by ADMIN
Created by: Nadya
Comments: 0
Category: TaskBoard
Type: Feature Request
0

Provide an option to edit the cards. 

Currently, we have a custom solution for card editing through a dialog: Task Card Edit Dialog - Telerik UI for WinForms

Unplanned
Last Updated: 19 Sep 2025 10:08 by ADMIN
Created by: Nathan
Comments: 1
Category: Dock
Type: Feature Request
2
Add UI Automation support.
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
1
 
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.

1 2 3 4 5 6