Hello everyone,
Here are the highlights of the new online resources we published this week from 10 Nov 2025 to 17 Nov 2025:
Article: https://docs.telerik.com/devtools/winforms/knowledge-base/add-license-key-in-add-in-project
Summary: This article explains how to add the Telerik UI for WinForms license key in an add-in project (e.g., VSTO/COM) to avoid runtime licensing errors. It shows where to register the key during add-in startup and how to embed the license file as an Embedded Resource so the license is applied before any Telerik controls are instantiated.
Article: https://docs.telerik.com/devtools/winforms/controls/pdfviewer/features/ai-summarization
Summary: RadPdfViewer for WinForms supports AI summarization of PDF content, allowing you to generate summaries for the entire document or the currently selected text. You configure an OpenAI or Azure OpenAI provider (API key and model), enable the built-in summarization UI/commands, and customize prompt templates to control the output for your use case.
Article: https://docs.telerik.com/devtools/winforms/knowledge-base/calendar-add-custom-space-footer
Summary: Learn how to add a custom footer area to RadCalendar in Telerik UI for WinForms by extending the control and injecting a LightVisualElement into its element tree to reserve space at the bottom. The article shows how to set a fixed height, align the footer, and update layout so the footer persists across theme and view changes, letting you host custom content (labels, buttons) beneath the calendar.
Article: https://docs.telerik.com/devtools/winforms/knowledge-base/chat-intercept-html-links
Summary: This article shows how to intercept and handle HTML anchor links inside Telerik UI for WinForms RadChat messages by using the MessageFormatting event to access the message’s markup text element and subscribing to its LinkClicked/HyperlinkClicked event. It demonstrates capturing the clicked URL and executing custom logic (for example, open in a browser or cancel navigation) so you can control link behavior per message.
Article: https://docs.telerik.com/devtools/winforms/knowledge-base/chat-resize-wrap-text-cardaction
Summary: This article shows how to make RadChat CardAction text wrap in Telerik UI for WinForms when the control is resized. You implement a custom ChatElementFactory that returns a CardAction element with TextWrap enabled and width-aware measuring (e.g., updating MaxSize on SizeChanged), so long labels break across lines and the card layout reflows correctly.
Article: https://docs.telerik.com/devtools/winforms/knowledge-base/datetimepicker-customizing-footer-panel
Summary: This article shows how to customize the footer panel of the popup RadCalendar used by the Telerik WinForms RadDateTimePicker. You’ll access the calendar’s footer element when the drop-down opens, hide or rename the default Today/Clear buttons, add custom RadButtonElements, wire Click handlers to set the picker’s Value, and close the popup programmatically.
Article: https://docs.telerik.com/devtools/winforms/knowledge-base/grid-custom-filtering-self-referencing-hierarchy
Summary: This article shows how to implement custom filtering in Telerik WinForms RadGridView when using a self-referencing hierarchy (Id/ParentId). You will handle GridViewTemplate.CustomFiltering to evaluate matches across levels, keep parent rows visible when any child satisfies the filter (and optionally the reverse), and preserve the hierarchical structure while applying FilterDescriptors.
Article: https://docs.telerik.com/devtools/winforms/knowledge-base/gridview-snap-one-row-per-scroll
Summary: Learn how to make RadGridView (Telerik UI for WinForms) snap the viewport to full rows, scrolling exactly one row per mouse wheel action. The article shows intercepting MouseWheel to suppress the default pixel-based scroll and using TableElement.RowScroller APIs (optionally aligning VScrollBar.SmallChange to the row height) to implement discrete, row-based scrolling.
Article: https://docs.telerik.com/devtools/winforms/controls/navigationview/kb-related-articles
Summary: This page indexes Knowledge Base articles for the Telerik UI for WinForms NavigationView control. Use it to quickly locate how-to and troubleshooting guidance for configuration, customization, data binding, item population, styling, selection, and event handling.
Article: https://docs.telerik.com/devtools/winforms/ai-coding-assistant/mcp-server-as-nuget
Summary: This article shows you how to add and configure the MCP Server as a NuGet package in a Telerik UI for WinForms project to enable the AI Coding Assistant. You install the package, set up your LLM provider (OpenAI or Azure OpenAI), wire up the server and tools, and initialize it in your app so the assistant can access your workspace and files.
Feel free to check them out and share your thoughts!
The Telerik Team

Hi everyone,
I have a website: gatewayabroadeducations.com which has a total of around 280 pages, including blog posts. All these pages are correctly listed in the sitemap, and the sitemap is submitted in Google Search Console.
However, when I search on Google using the operator site:gatewayabroadeducations.com, I can only see about 29 pages indexed. Most of the blog posts and some other pages are not appearing in the Google search results.
I’ve checked:
The pages are in the sitemap
Pages are not blocked by robots.txt
Pages return a 200 status (not 404 or 301)
Canonical tags seem correct
No manual action in Search Console
I can't figure out why the remaining pages aren’t being indexed. Could this be due to:
Low-quality or duplicate content?
Crawl budget issues?
Internal linking problems?
Something else I might be missing?
Any help or suggestions to diagnose and fix this would be appreciated.
Thanks in advance!
message error: La référence d objet n'est pas définie à une instance d'un objet.
Hello,
In my Frame, I use a RadDock with documentContainer and two toolwindows.
I would like the toolWindowFamily to dock automatically when I select it, rather than having to press the “pin” image.
On the “stabstripItem_click”, I put: oToolwindow:DockState= Telerik.WinControls.UI.Docking.DockState:Docked.
Here is my code:
METHOD PRIVATE VOID TabStripItem_Click( INPUT sender AS System.Object, INPUT e AS System.EventArgs ):
DEFINE VARIABLE oTabStripItem AS Telerik.WinControls.UI.TabStripItem NO-UNDO.
DEFINE VARIABLE oToolwindow AS Telerik.WinControls.UI.Docking.ToolWindow NO-UNDO.
DEFINE VARIABLE cValeur AS CHARACTER NO-UNDO.
oTabStripItem = CAST(sender, Telerik.WinControls.UI.TabStripItem) NO-ERROR.
IF oTabStripItem NE ? THEN
DO:
oToolwindow = CAST(oTabStripItem:TabPanel, Telerik.WinControls.UI.Docking.ToolWindow) NO-ERROR.
IF VALID-OBJECT(oToolwindow) THEN DO:
IF oToolwindow NE ? THEN
DO:
IF THIS-OBJECT:DockPrincipal:ActiveWindow NE oToolwindow THEN
DO:
oActiveWindow = THIS-OBJECT:DockPrincipal:ActiveWindow.
cValeur = THIS-OBJECT:oongFamilleListe:GetToolwindowFurtifValeur( oToolwindow:NAME ).
InitialiseToolWindow( oToolwindow:NAME ).
CASE oToolwindow:Name:
WHEN gcToolWindowNomAide[1] THEN DO:
IF cValeur NE "?" AND cValeur NE 'OFF'
THEN THIS-OBJECT:oongCodeAnalytiqueAide:Initialisation(cValeur).
ELSE THIS-OBJECT:oongCodeAnalytiqueAide:Initialisation("").
oToolwindow:Enabled = ( cValeur NE "?" AND cValeur NE 'OFF').
END.
WHEN gcToolWindowNomFiltre[1] THEN DO:
glDockParCode= YES.
oToolwindow:DockState= Telerik.WinControls.UI.Docking.DockState:Docked.
glDockParCode= NO.
oToolwindow:Enabled = YES.
gcNoeudCourant = 'C000'.
glFiltreVisibleFamille = YES.
oongFamilleArborescence:SelectionNoeud(gcNoeudCourant).
IF glRafraichir THEN DO:
SetEtatObjet("BtnSupprimer", NO).
//SetEtatObjet("BtnCopier", NO).
//SetEtatObjet("BtnColler", NO).
//SetEtatObjet("BtnCollerInserer", NO).
oongFamilleListe:SetParamFiltreFamille ( glFiltreVisibleFamille ,gcNoeudCourant ).
oongFamilleListe:Rafraichir( ).
END.
END.
END CASE.
THIS-OBJECT:DockPrincipal:ActiveWindow = oToolwindow.
END.
ELSE
DO:
THIS-OBJECT:DockPrincipal:CloseAutoHidePopup().
oToolwindow:AutoHideTab:Click:UnSubscribe(THIS-OBJECT:TabStripItem_Click) NO-ERROR.
oToolwindow:AutoHideTab:Click:Subscribe(THIS-OBJECT:TabStripItem_Click) NO-ERROR.
IF THIS-OBJECT:DockPrincipal:ActiveWindow NE oActiveWindow THEN
THIS-OBJECT:DockPrincipal:ActiveWindow = oActiveWindow.
END.
END.
END.
ELSE DO:
MESSAGE 'ERR - TabStripItem_Click '
VIEW-AS ALERT-BOX.
RETURN.
END.
END.
/*
IF lFlgDocked THEN DO:
//oToolwindow:AutoHideTab:Click:UnSubscribe(THIS-OBJECT:TabStripItem_Click) NO-ERROR.
glDockParCode = YES.
oToolwindow:DockState= Telerik.WinControls.UI.Docking.DockState:Docked NO-ERROR.
oToolwindow:Tag = "ON".
glDockParCode = NO.
// oToolwindow:AutoHideTab:Click:Subscribe(THIS-OBJECT:TabStripItem_Click) NO-ERROR.
END.
*/
RETURN.
END METHOD.

My users want a UI that looks like the screen capture below. They want to be able to drag squares from the top frame to the bottom (mutually exclusive) and reorder them within the bottom frame and then save/restore between editing sessions. Do you have a control designed for this?
Thanks
Carl

I've just published all my .Net 9 apps using ClickOnce, all of them are now broken !
Using the following Nuget : UI.for.WinForms.AllControls.Net90 version 2025.1.211
They all crash on startup with the following error :
Application: MyApp.exe
CoreCLR Version: 9.0.225.6610
.NET Version: 9.0.2
Description: The process was terminated due to an unhandled exception.
Exception Info: System.IO.FileNotFoundException: Could not load file or assembly 'UIAutomationProvider, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. Le fichier spécifié est introuvable.
File name: 'UIAutomationProvider, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
at Telerik.WinControls.UI.RadToggleSwitchElement.OnValueChanged()
at Telerik.WinControls.UI.RadToggleSwitchElement.set_Value(Boolean value)
at Telerik.WinControls.UI.RadToggleSwitchElement.InitializeFields()
at Telerik.WinControls.RadElement..ctor()
at Telerik.WinControls.VisualElement..ctor()
at Telerik.WinControls.RadComponentElement..ctor()
at Telerik.WinControls.RadItem..ctor()
at Telerik.WinControls.UI.UIItemBase..ctor()
at Telerik.WinControls.UI.LightVisualElement..ctor()
at Telerik.WinControls.UI.RadToggleSwitchElement..ctor()
at Telerik.WinControls.UI.RadRibbonBarElement.CreateButtons()
at Telerik.WinControls.UI.RadRibbonBarElement.CreateChildElements()
at Telerik.WinControls.RadElement.CallCreateChildElements()
at Telerik.WinControls.RadElement.Construct()
at Telerik.WinControls.RadElement..ctor()
at Telerik.WinControls.VisualElement..ctor()
at Telerik.WinControls.RadComponentElement..ctor()
at Telerik.WinControls.RadItem..ctor()
at Telerik.WinControls.UI.UIItemBase..ctor()
at Telerik.WinControls.UI.LightVisualElement..ctor()
at Telerik.WinControls.UI.RadRibbonBarElement..ctor()
at Telerik.WinControls.UI.RadRibbonBar.CreateRibbonBarElement()
at Telerik.WinControls.UI.RadRibbonBar.CreateChildItems(RadElement parent)
at Telerik.WinControls.RadControl.Telerik.WinControls.IComponentTreeHandler.CreateChildItems(RadElement parent)
at Telerik.WinControls.RadElementTree.InitializeRootElement()
at Telerik.WinControls.RadControl.Construct()
at Telerik.WinControls.RadControl..ctor()
at Telerik.WinControls.RadNonClientUIControl..ctor()
at Telerik.WinControls.UI.RadRibbonBar..ctor()
at App.MainForm.InitializeComponent()
at App.MainForm..ctor(IServiceProvider provider)
at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
at System.Reflection.MethodBaseInvoker.InvokeWithOneArg(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitDisposeCache(ServiceCallSite transientCallSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine.<>c__DisplayClass2_0.<RealizeService>b__0(ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(ServiceIdentifier serviceIdentifier, ServiceProviderEngineScope serviceProviderEngineScope)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
at App.Program.Main()

The following distribution changes will be announced as of 2025 Q2:

Hello,
I'd like the number of characters in the form title to be reduced when I reduce my form.
example with eclipse: (Width form: 1000)
projet_xxxxx - c:/mon_projet/srv/fichier/caracteristique/grid/form_caraterisque.cls - Progress Developper Studio
and after reduction of Form (width form 700)
projet_xxxxx - c:/mon_projet/srv/fichier/caracteristique/grid/form_caraterisque.cls - Progress ...
the title and ...
best regard.

Hi,
I am using Telerik Winforms for an MVVM application.
I have created a small Winform example about how we are using MVVM to handle events with default Winform applications <Attach example of MVVM application >. Most notable about this example is that we are using RelayCommands to help with the separation of concerns between our view and viewmodel on the click event as outlined in this microsoft devblogs. Using Command Binding in Windows Forms apps to go Cross-Platform - .NET Blog
We would like to avoid using event listeners (+=) in our view for events, such as click, as it does not follow the MVVM pattern. In WPF, they have event binding built in and the microsoft blog post describes how we can perform something similar with RelayCommand. Both ways follow the MVVM design pattern. I would like to know if there was a built in Telerik way to perform event binding?
Thanks
I have a grid with 60,000 records and I have the filter line at the top of the grid. When a user writes to the filter line, it takes a few minutes for the grid to be filtered.
Telerik version is 2021.2.511.40.
Are there any performance improvements in newer versions? Is there a guarantee that if we update the Telerik version this problem will be resolved?
I have this code, and I just want to export all pages or a specific page from the loaded PDF in the RadPdfViewer, without saving the file to the computer.
The function RadPdfViewer.ExportPage returns a Bitmap, but when I assign the result of this function to a new variable of type Bitmap, an error occurs.
'1º Option - Work
For i As Integer = 1 To RadPdfViewer1.Document.Pages.Count
Dim guid As Guid = Guid.NewGuid
RadPdfViewer1.ExportPage(i, "C:\temp\" & guid.ToString() & ".pdf", 1, True, ImageFormat.Png)
Dim bitmap As Bitmap = New Bitmap("C:\temp\" & guid.ToString() & ".pdf")
Dim reader As BarcodeReader = New BarcodeReader With {
.AutoRotate = True,
.TryInverted = True
}
Dim result As Result = reader.Decode(bitmap)
If result Is Nothing Then Continue For
Dim decoded As String = result.ToString().Trim()
If decoded Is Nothing Then Continue For
If decoded <> TextBox1.Text Then TextBox1.Text = TextBox1.Text & vbNewLine & vbNewLine & decoded
bitmap.Dispose()
My.Computer.FileSystem.DeleteFile("C:\temp\" & guid.ToString() & ".pdf")
Next
'2 Option - Dont Work
Dim bitmap As Bitmap = RadPdfViewer1.ExportPage(1, 1, False, ImageFormat.Png)
'3º Option - Dont Work
For Each bitmap As Bitmap In RadPdfViewer1.ExportPages(1, False, ImageFormat.Bmp)
Dim reader As BarcodeReader = New BarcodeReader With {
.AutoRotate = True,
.TryInverted = True
}
Dim result As Result = reader.Decode(bitmap)
If result Is Nothing Then Continue For
Dim decoded As String = result.ToString().Trim()
If decoded Is Nothing Then Continue For
If decoded <> TextBox1.Text Then TextBox1.Text = TextBox1.Text & vbNewLine & vbNewLine & decoded
Next