Telerik Forums
UI for WinForms Forum
0 answers
33 views

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

Atanas
Telerik team
 updated question on 17 Nov 2025
0 answers
18 views

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!

Manish
Top achievements
Rank 1
 asked on 17 Oct 2025
1 answer
26 views

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.

 

                                                                                                                                                                                                                                                                                                                                                                                                           
Dinko | Tech Support Engineer
Telerik team
 answered on 30 Sep 2025
1 answer
51 views

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

Dinko | Tech Support Engineer
Telerik team
 answered on 11 Mar 2025
1 answer
104 views

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()

Dinko | Tech Support Engineer
Telerik team
 answered on 06 Mar 2025
0 answers
187 views

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

  • CHM and Help3 offline documentation resources will be discontinued. The Telerik UI for WinForms offline documentation will be available to download as a PDF file from your Telerik account: Download Product Files
  • Classes inside the Telerik.WinControls.Zip and Telerik.WinForms.Spreadsheet.Zip namespaces will be removed from the Telerik.WinControls and Telerik.WinControls.RadSpreadsheet assemblies. Please transition to System.IO.Compression or Telerik Document Processing libraries for continued Zip functionality.
  • .NET 6 distribution will be discontinued, following Microsoft's End of Support Policy for .NET 6.
Nadya | Tech Support Engineer
Telerik team
 updated question on 27 Feb 2025
1 answer
52 views

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.

Nadya | Tech Support Engineer
Telerik team
 answered on 27 Feb 2025
0 answers
40 views

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

Suresh
Top achievements
Rank 1
 updated question on 19 Feb 2025
2 answers
126 views

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?

F3M
Top achievements
Rank 2
Iron
Iron
 answered on 13 Jan 2025
2 answers
114 views

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

F3M
Top achievements
Rank 2
Iron
Iron
 answered on 04 Dec 2024
Narrow your results
Selected tags
Tags
GridView
Scheduler and Reminder
Treeview
Dock
RibbonBar
Themes and Visual Style Builder
ChartView
Calendar, DateTimePicker, TimePicker and Clock
DropDownList
Buttons, RadioButton, CheckBox, etc
ListView
ComboBox and ListBox (obsolete as of Q2 2010)
Form
Chart (obsolete as of Q1 2013)
PageView
MultiColumn ComboBox
TextBox
RichTextEditor
PropertyGrid
Menu
RichTextBox (obsolete as of Q3 2014 SP1)
Panelbar (obsolete as of Q2 2010)
PivotGrid and PivotFieldList
Tabstrip (obsolete as of Q2 2010)
MaskedEditBox
CommandBar
PdfViewer and PdfViewerNavigator
ListControl
Carousel
GanttView
Diagram, DiagramRibbonBar, DiagramToolBox
Panorama
New Product Suggestions
VirtualGrid
Toolstrip (obsolete as of Q3 2010)
AutoCompleteBox
Label
Spreadsheet
ContextMenu
Panel
Visual Studio Extensions
TitleBar
Documentation
SplitContainer
Map
DesktopAlert
CheckedDropDownList
ProgressBar
TrackBar
MessageBox
Rotator
SpinEditor
CheckedListBox
StatusStrip
LayoutControl
SyntaxEditor
Wizard
ShapedForm
TextBoxControl
CollapsiblePanel
Conversational UI, Chat
DateTimePicker
TabbedForm
CAB Enabling Kit
GroupBox
WaitingBar
DataEntry
ScrollablePanel
ScrollBar
ImageEditor
Tools - VSB, Control Spy, Shape Editor
BrowseEditor
DataFilter
FileDialogs
ColorDialog
Gauges (RadialGauge, LinearGauge, BulletGraph)
ApplicationMenu
RangeSelector
CardView
WebCam
BindingNavigator
Styling
Barcode
PopupEditor
RibbonForm
TaskBoard
Callout
NavigationView
ColorBox
PictureBox
FilterView
Accessibility
VirtualKeyboard
DataLayout
Licensing
ToastNotificationManager
ValidationProvider
CalculatorDropDown
Localization
TimePicker
BreadCrumb
ButtonTextBox
FontDropDownList
BarcodeView
Security
LocalizationProvider
Dictionary
SplashScreen
Overlay
Flyout
Separator
SparkLine
TreeMap
StepProgressBar
ToolbarForm
NotifyIcon
DateOnlyPicker
AI Coding Assistant
Rating
TimeSpanPicker
Calculator
OfficeNavigationBar
TaskbarButton
HeatMap
SlideView
PipsPager
AIPrompt
TaskDialog
TimeOnlyPicker
+? more
Top users last month
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Sergii
Top achievements
Rank 1
Iron
Iron
Iron
Dedalus
Top achievements
Rank 1
Iron
Iron
Lan
Top achievements
Rank 1
Iron
Doug
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Top users last month
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Sergii
Top achievements
Rank 1
Iron
Iron
Iron
Dedalus
Top achievements
Rank 1
Iron
Iron
Lan
Top achievements
Rank 1
Iron
Doug
Top achievements
Rank 1
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?