12 Jan to 19 Jan 2026: highlights of the new online resources that we published last week.
Article: https://www.telerik.com/products/winforms/documentation/knowledge-base/gridview-tracking-visible-rows
Summary: Learn how to detect which data rows are currently visible in RadGridView for WinForms, taking virtualization, scrolling, filtering, and grouping into account. The article shows two approaches: compute the visible range using the table element’s RowScroller (vertical scrollbar value and viewport size), and enumerate the currently realized GridDataRowElement instances to access their RowInfo/DataBoundItem, with examples wired to scroll and resize events.
Article: https://www.telerik.com/products/winforms/documentation/knowledge-base/gridview-export-groups-collapsed
Summary: Learn how to export a grouped WinForms RadGridView to Excel (XLSX) with all groups collapsed on open using GridViewSpreadExport. You handle the exporter’s WorkbookCreated callback and set each worksheet RowGroup to collapsed (e.g., iterate Worksheet.RowGroups and set IsCollapsed = true) so the resulting file preserves the collapsed state of the grid’s groups. Note: this behavior relies on SpreadExport (XLSX); the older ExcelML exporter cannot persist collapsed outline groups.
Article: https://www.telerik.com/products/winforms/documentation/knowledge-base/listview-custom-item-arrangeoverride
Summary: This article shows you how to create a custom RadListView visual item in Telerik UI for WinForms and precisely control its layout by overriding ArrangeOverride (and MeasureOverride). You’ll subclass SimpleListViewVisualItem/BaseListViewVisualItem, add child LightVisualElement elements (e.g., image and text) in CreateChildElements, compute and assign bounds in ArrangeOverride, and plug your item in via the VisualItemCreating event to achieve custom item layouts.
Article: https://www.telerik.com/products/winforms/documentation/knowledge-base/autocompletebox-remove-duplicate-text
Summary: This article shows how to remove duplicate text in Telerik UI for WinForms RadAutoCompleteBox by preventing duplicate tokens and sanitizing pasted, delimiter-separated input. You validate each new entry against the existing Tokens collection (case-insensitive) and either cancel the duplicate or rebuild the text from unique values to keep the control’s content deduplicated.
Article: https://www.telerik.com/products/winforms/documentation/knowledge-base/datetimepicker-custom-freeform-parser
Summary: Learn how to add a custom free‑form date/time parser to Telerik WinForms RadDateTimePicker so users can type dates in multiple formats (e.g., 1/2, 2024-01-02, 2pm) and still produce a valid Value. You’ll intercept the editor’s TextChanging/ValueChanging flow, parse with DateTime.TryParse/TryParseExact using defined patterns and CultureInfo, cancel the default parsing, set the normalized DateTime, and surface validation when parsing fails.
Article: https://www.telerik.com/products/winforms/documentation/knowledge-base/diagram-enable-autoscroll-dragging-shape
Summary: Enable auto-scroll in Telerik UI for WinForms RadDiagram while you drag a shape, so the canvas pans when the pointer nears the control edges. You’ll handle the drag operation to detect edge proximity and programmatically scroll the viewport (via the control’s scrollbars), with adjustable edge thresholds and scroll step to tune speed and responsiveness.
---------------------------------------------------------------------------------------------------------------------------------------------------------
05 Jan to 12 Jan 2026: highlights of the new online resources that we published last week.
Article: https://www.telerik.com/products/winforms/documentation/introduction
Summary: This introduction explains what Telerik UI for WinForms includes and which .NET/Windows targets it supports, covering theming, high DPI, localization, RTL, accessibility, and touch. Use it to install the controls from the Telerik NuGet feed or the installer, set up Visual Studio design-time, and navigate to getting started, API reference, and guides for core controls like RadGridView, ChartView, Scheduler, Ribbon, Dock, PDF Viewer, and RichTextEditor, plus theming and upgrade guidance.
Article: https://www.telerik.com/products/winforms/documentation/security/faq
Summary: This Security FAQ explains how Telerik UI for WinForms handles key security topics: assembly/code signing, third‑party dependencies and CVE monitoring, telemetry/data collection, network behavior, and operation under restricted permissions (including FIPS or locked‑down environments). It also details the vulnerability reporting and patching process and provides guidance to help you securely use, configure, and update the controls in your WinForms applications.
Article: https://www.telerik.com/products/winforms/documentation/core/overview
Summary: This overview explains how to use Telerik UI for WinForms with .NET Core and .NET 5/6/7/8 on Windows, including supported runtimes, Visual Studio and Windows Forms Designer requirements, and toolbox integration. You’ll learn how to create or migrate SDK-style WinForms projects, reference the correct .NET-targeted assemblies via NuGet or local binaries, and handle build/deploy specifics, with notes on platform limitations and known issues.
Article: https://www.telerik.com/products/winforms/documentation/knowledge-base
Summary: Use the Telerik UI for WinForms Knowledge Base to find troubleshooting guides, how-to articles, and code examples for common control scenarios such as GridView, data binding, theming, printing, and performance. Search and filter the articles to quickly locate task-focused solutions you can apply directly in your project to fix issues or implement features. Each entry summarizes the problem context and provides the steps or code needed to resolve it.
Article: https://www.telerik.com/products/winforms/documentation/core/design-time
Summary: This article explains design-time support for Telerik UI for WinForms when targeting .NET Core and .NET 5/6/7 in the Visual Studio Windows Forms Designer. You’ll verify prerequisites, install/reference the Telerik assemblies via NuGet, integrate controls into the Toolbox, and use designer features like smart tags, themes, and the Property Grid. It also outlines known limitations of the .NET Core designer and provides troubleshooting guidance.
Article: https://www.telerik.com/products/winforms/documentation/security/overview
Summary: This article explains how to secure applications built with Telerik UI for WinForms and what you are responsible for: ship official strong‑named assemblies, keep the suite updated, run with least privilege, and treat all data bound to controls as untrusted. It outlines best practices for controls that load files or markup (document viewers/editors), including validating and sanitizing input, restricting or disabling external resource loading and hyperlink actions, and avoiding deserialization of untrusted content, and it points you to the product’s vulnerability reporting and support policies.
Article: https://www.telerik.com/products/winforms/documentation/tools/themeviewer
Summary: This article explains how to use the ThemeViewer to preview and validate Telerik UI for WinForms themes across the control suite. You load built-in or custom themes (including ones created with Visual Style Builder), switch between controls and states, and test scenarios like DPI scaling and RightToLeft to catch visual issues before integrating a theme into your application.
Article: https://www.telerik.com/products/winforms/documentation/core/core-migration
Summary: This guide shows you how to migrate a Telerik UI for WinForms app from .NET Framework to .NET (Core/.NET 5+), either by converting the existing project to SDK-style or by creating a new .NET WinForms project and moving your code. You’ll retarget the TFM and replace assembly references with the Telerik .NET packages from the Telerik NuGet feed, then rebuild. It also covers resource/settings handling (resx, app.config via System.Configuration.ConfigurationManager), WinForms designer requirements in Visual Studio, publishing, and common fixes such as adding Microsoft.Windows.Compatibility, resolving missing APIs, licensing considerations, and 32/64-bit differences.
Article: https://www.telerik.com/products/winforms/documentation/controls/clock/clock
Summary: Use RadClock (Telerik UI for WinForms) to show an analog clock and optionally let users pick a time; this article shows how to add the control in the designer or code, set the time via the Value (DateTime) property, and handle ValueChanged. It also details appearance and behavior settings, theming, and embedding RadClock in RadTimePicker.
Article: https://www.telerik.com/products/winforms/documentation/controls/chat/toolbar
Summary: This article shows you how to configure the RadChat toolbar in Telerik UI for WinForms: enable/disable the toolbar, add and arrange toolbar items, and control their visibility. You’ll create toolbar items, handle click events, and customize icons, tooltips, and layout to add actions (for example, attachments or emoji) next to the chat input.
---------------------------------------------------------------------------------------------------------------------------------------------------------
10 Nov to 17 Nov 2025: highlights of the new online resources that we published last week.
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
i have a Master-Detail CRUD Job
Details shown using RADGRIDVIEW
for example : Master is "TBSYUSER" class Detail is "TBSYUSAU" class
change master will change detail data
i using BindingList<TBSYUSAU> --> BindingSource -> RADGRIDVIEW
now if detail data's count varing a little large
ex: record count change from 1 to 89 due to master change
RADGRIDVIEW refresh will take more times
should i change strucuture to : Datatable --> BindingSource -> RADGRIDVIEW
or have some suggestion ?
TKs

I would like to expand a GridViewComboBoxColumn list on the same row where on another column that is set to "Lost".
(see attached screenshot)
(1) User clicks on a cell and selects "Lost" from a list
(2) From Cell Event, the "Reason" column (GridViewComboBoxColumn) is automatically expanded so the user knows to select a reason.
private void dgvSales_CellValidating(object sender, CellValidatingEventArgs e)
{
if(e.ColumnIndex >= 0 && e.RowIndex >= 0)
{
switch (e.ColumnIndex)
{
case int _ when e.ColumnIndex == dgvSales.Columns["colWonLost"].Index:
if(e.Value.ToString() == "Lost")
{
dgvSales.CurrentRow.Cells["colReason"].IsSelected = true;
//Add code here to expand colReason list
return;
}
break;
default:
break;
}
}
} //dgvSales CellValidating
Hi
I notice in the release notes for WinForms 2025.4.1321 that the upcoming release (Q2 2026) will no longer support Windows 7 theme (amongst others). My desktop application make extensive use of this theme, including mimicing the colours used by th etheme in other custom controls.
What is exactly meant by "Support for existing controls using these themes will remain unchanged."? Will my existing application work as before without changes for this and following releases of WinForms?
Cheers
Toby
I searched and searched and this answer was answered back in 2023 but not from a code perspective.
How do I change the font fore color (via code) for the group caption? CaptionFill is for the backcolor. Got it. I have spent hours trying to find it in this website and searching. Why does Telerik make things so difficult?

Hello,
I want to choose column by checkboxes, something like that:
I
It is possible?
Thank you for your answer

i want to disable some default Column Header Context Menu like "Sort Ascdnging" "Sort Descending" ...
How to do ?
Also i want to disable some default Cell Column Context Menu ? TKS

i use RADGRIDVIEW to show datas
i want to let use to select some rows as "Deleted"
to delete these datas form DataBase
how can i let these rows shown as the following
the example is done by using C# default DataGridView
How can be done in RADGRIDIEW ?

Hello,
I would like to ask two questions about custom columns in GridView. I'm putting them into one thread since they're related.
1. What's the relationship between SetContentCore and OnCellFormatting? Is it ok to set formatting in SetContentCore? This is how it seems to me to be correct:
protected override void SetContentCore(object value)
{
if (value is Quality q)
{
if (q == Quality.None)
Text = "--";
else
Text = q.ToString();
}
else
base.SetContentCore(value);
}
protected override void OnCellFormatting(CellFormattingEventArgs e)
{
ResetValue(VisualElement.BackColorProperty, ValueResetFlags.Local);
ResetValue(VisualElement.ForeColorProperty, ValueResetFlags.Local);
ResetValue(LightVisualElement.NumberOfColorsProperty, ValueResetFlags.Local);
ResetValue(LightVisualElement.DrawFillProperty, ValueResetFlags.Local);
if (Value is Quality q)
{
switch (q)
{
case Quality.OK:
BackColor = Color.Lime;
NumberOfColors = 1;
DrawFill = true;
break;
case Quality.NOK:
BackColor = Color.Red;
NumberOfColors = 1;
DrawFill = true;
break;
case Quality.Error:
BackColor = Color.DodgerBlue;
NumberOfColors = 1;
DrawFill = true;
break;
}
}
base.OnCellFormatting(e);
}But this also works. I tried it mainly because of the second question, and Copilot actually suggested it as the first styling approach.
protected override void SetContentCore(object value)
{
if (value is Quality q)
{
if (q == Quality.None)
Text = "--";
else
Text = q.ToString();
ResetValue(VisualElement.BackColorProperty, ValueResetFlags.Local);
ResetValue(VisualElement.ForeColorProperty, ValueResetFlags.Local);
ResetValue(LightVisualElement.NumberOfColorsProperty, ValueResetFlags.Local);
ResetValue(LightVisualElement.DrawFillProperty, ValueResetFlags.Local);
switch (q)
{
case Quality.OK:
BackColor = Color.Lime;
NumberOfColors = 1;
DrawFill = true;
break;
case Quality.NOK:
BackColor = Color.Red;
NumberOfColors = 1;
DrawFill = true;
break;
case Quality.Error:
BackColor = Color.DodgerBlue;
NumberOfColors = 1;
DrawFill = true;
break;
}
}
else
base.SetContentCore(value);
}
2. Is there any way to override how Value is retrieved from the DataBoundItem? In one of my column types, I can't use FieldName directly. In classic DataGridView, I could override GetValue / SetValue like this:
protected override object GetValue(int rowIndex)
{
DgvRealResultColumn col = OwningColumn as DgvRealResultColumn;
object obj = DataGridView.Rows[rowIndex].DataBoundItem;
if ((col == null) || (obj == null))
return base.GetValue(rowIndex);
object resultValue = GetResultValue(rowIndex, col, obj);
Quality q = (Quality)Convert.ToInt32(resultValue);
if (!QualityHelper.HasValue(q))
return null;
if (obj is RealResult rr)
return rr.Value;
string propName = string.Format("R{0:D3}Value", col.ItemIndex);
PropertyInfo pi = obj.GetType().GetProperty(propName);
return pi.GetValue(obj, null);
}
I don't see anything like that in Telerik GridView. So far, I came up with this workaround:
protected override void SetContentCore(object value)
{
TestResult r = null;
var obj = RowInfo.DataBoundItem;
if (obj is TestResult)
r = (TestResult)obj;
else if (obj is TestItem item)
{
var col = ColumnInfo as RgvTestResultColumn;
if ((col != null) && (item.Results != null) && (col.ResultIndex < item.Results.Length))
r = item.Results[col.ResultIndex];
}
ResetValue(VisualElement.BackColorProperty, ValueResetFlags.Local);
ResetValue(VisualElement.ForeColorProperty, ValueResetFlags.Local);
ResetValue(LightVisualElement.NumberOfColorsProperty, ValueResetFlags.Local);
ResetValue(LightVisualElement.DrawFillProperty, ValueResetFlags.Local);
if (r == null)
{
base.SetContentCore(value);
return;
}
switch (r.Result)
{
case Quality.OK:
Text = r.Value.ToString("F1");
BackColor = Color.Lime;
NumberOfColors = 1;
DrawFill = true;
break;
case Quality.NOK:
Text = r.Value.ToString("F1");
BackColor = Color.Red;
NumberOfColors = 1;
DrawFill = true;
break;
case Quality.Error:
Text = "X";
BackColor = Color.DodgerBlue;
NumberOfColors = 1;
DrawFill = true;
break;
default:
Text = "--";
break;
}
}But in this case, it doesn't set the internal Value, so when I write rgv.Rows[0].Cells["colR0"].Value in code, I always get null. Is there any way to solve this? I am attaching my test code for testing.

i want to custimize RadMessageBox
example : set the TitleBar.Font BackColor
set radLabel1 font and backcolor
set button 's font and button's szie ....
