Telerik Forums
UI for WinForms Forum
6 answers
192 views

Hi.

 

I'm facing and issue with displaying hierarchical data (self-referencing) in grid when missing parent items in data source - only part of data is displayed.

 

1. Add grid to form

1.var grid = new RadGridView {Dock = DockStyle.Fill};
2.this.Controls.Add(grid);
3.grid.Columns.Add("cName","Name","Name"); //Dummy column displaying Name

 

2. Setup self-referencing

1.var col1 = new GridViewTextBoxColumn("hiddenColumnId", "Id");
2.var col2 = new GridViewTextBoxColumn("hiddenColumnParentId", "ParentId");
3.grid.MasterTemplate.Columns.Add(col1);
4.grid.MasterTemplate.Columns.Add(col2);
5.grid.Columns["hiddenColumnId"].IsVisible = false;
6.grid.Columns["hiddenColumnParentId"].IsVisible = false;
7.grid.Relations.AddSelfReference(grid.MasterTemplate, "hiddenColumnId", "hiddenColumnParentId");

 

3. Create dummy data type

01.class Item
02.{
03.    public Item(int id, string name, int? parentId = null)
04.    {
05.        Id = id;
06.        Name = name;
07.        ParentId = parentId;
08.    }
09. 
10.    public int Id { get; set; }
11.    public string Name { get; set; }
12.    public int? ParentId { get; set; }
13.}

 

4. Add new data source

01.var items = new List<Item>
02.{
03.    new Item(1,"1"),
04.    new Item(2,"1.1",1),
05.    new Item(3,"1.2",1),
06.    new Item(7,"1.2.1",3),
07.    new Item(4,"2"),
08.    new Item(5,"2.1",4),
09.    new Item(6,"2.2",4)
10.};
11.grid.DataSource = items;

 

And as expected a correct tree structure is displayed

1.1
2.-1.1
3.-1.2
4.--1.2.1
5.2
6.-2.1
7.-2.2

 

 

However in my case due to busines logic I have only a subset of data - all except item "1" and "2".

Instead of ex

1.1.1
2.1.2
3.-1.2.1
4.2.1
5.2.2

 

I can see only children of first missing parent item. Although the number of rows is matching correct total number of item to be displayed (5) only part of items are visible (3).

1.1.1
2.1.2
3.-1.2.1

 

 

As a workaroud I can modify data source and remove parent assignement from objects if parent is missing in data source either on data preparation or DataBindingComplete event.

01.private void Grid_DataBindingComplete(object sender, GridViewBindingCompleteEventArgs e)
02. {
03.     var grid = sender as RadGridView;
04.      
05.    // Get existing items
06.     var ids = new List<object>();
07.     foreach (var id in grid.Columns["hiddenColumnId"].DistinctValues)
08.     {
09.         ids.Add(id);
10.     }
11. 
12.    // Remove missing parents
13.    foreach (var row in grid.Rows)
14.    {
15.        var parentId = row.Cells["hiddenColumnParentId"].Value;
16.        if (!ids.Contains(parentId))
17.            row.Cells["hiddenColumnParentId"].Value = null;
18.    }
19.}

 

 

However this solution is not suitable, because it is modifying data providing inconsistant state - using that data in code I may falsly assume that the item does not have a parent while it has.

 

Any ideas how to solve this issue?

 

Regargs
Greg

Zander
Top achievements
Rank 2
Iron
 answered on 05 Dec 2025
2 answers
40 views

Hi

I refer to the aritcle "How to Change PageViewMode for the Nested Levels in RadGridView - Telerik UI for WinForms"

I have a setting implemented that is like in the article.

It is working but has a flaw:

When an entry of the second tier is expanded and I then collapse the corresponding entry in the first tier and re-expand it, I get an NullReferenceException coming out of Telerik code:


System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
   bei Telerik.WinControls.UI.RowsContainerElement.UpdateMergeCells(GridCellElement cellElement)
   bei Telerik.WinControls.UI.RowsContainerElement.ArrangeOverride(SizeF finalSize)
   bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect)
   bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect)
   bei Telerik.WinControls.UI.ScrollViewElement`1.ArrangeViewElement(RectangleF viewElementRect)
   bei Telerik.WinControls.UI.ScrollViewElement`1.ArrangeOverride(SizeF finalSize)
   bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect)
   bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect)
   bei Telerik.WinControls.UI.RadPageViewElementBase.ArrangeChildren(SizeF finalSize)
   bei Telerik.WinControls.UI.RadPageViewElementBase.ArrangeOverride(SizeF finalSize)
   bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect)
   bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect)
   bei Telerik.WinControls.UI.RadPageViewExplorerBarElement.ArrangeContent(RectangleF clientRect)
   bei Telerik.WinControls.UI.RadPageViewExplorerBarElement.PerformArrange(RectangleF clientRect)
   bei Telerik.WinControls.UI.RadPageViewElement.ArrangeOverride(SizeF finalSize)
   bei Telerik.WinControls.UI.RadPageViewExplorerBarElement.ArrangeOverride(SizeF finalSize)
   bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect)
   bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect)
   bei Telerik.WinControls.UI.LightVisualElement.ArrangeOverride(SizeF finalSize)
   bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect)
   bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect)
   bei Telerik.WinControls.UI.GridDetailViewRowElement.ArrangeOverride(SizeF finalSize)
   bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect)
   bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect)
   bei Telerik.WinControls.UI.VirtualizedStackContainer`1.ArrangeElementCore(RadElement element, SizeF finalSize, RectangleF arrangeRect)
   bei Telerik.WinControls.UI.VirtualizedStackContainer`1.ArrangeOverride(SizeF finalSize)
   bei Telerik.WinControls.UI.ScrollableRowsContainerElement.ArrangeOverride(SizeF finalSize)
   bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect)
   bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect)
   bei Telerik.WinControls.UI.RowsContainerElement.ArrangeOverride(SizeF finalSize)
   bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect)
   bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect)
   bei Telerik.WinControls.UI.ScrollViewElement`1.ArrangeViewElement(RectangleF viewElementRect)
   bei Telerik.WinControls.UI.ScrollViewElement`1.ArrangeOverride(SizeF finalSize)
   bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect)
   bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect)
   bei Telerik.WinControls.UI.RadPageViewElementBase.ArrangeChildren(SizeF finalSize)
   bei Telerik.WinControls.UI.RadPageViewElementBase.ArrangeOverride(SizeF finalSize)
   bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect)
   bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect)
   bei Telerik.WinControls.UI.RadPageViewExplorerBarElement.ArrangeContent(RectangleF clientRect)
   bei Telerik.WinControls.UI.RadPageViewExplorerBarElement.PerformArrange(RectangleF clientRect)
   bei Telerik.WinControls.UI.RadPageViewElement.ArrangeOverride(SizeF finalSize)
   bei Telerik.WinControls.UI.RadPageViewExplorerBarElement.ArrangeOverride(SizeF finalSize)
   bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect)
   bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect)
   bei Telerik.WinControls.UI.LightVisualElement.ArrangeOverride(SizeF finalSize)
   bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect)
   bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect)
   bei Telerik.WinControls.UI.GridDetailViewRowElement.ArrangeOverride(SizeF finalSize)
   bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect)
   bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect)
   bei Telerik.WinControls.UI.VirtualizedStackContainer`1.ArrangeElementCore(RadElement element, SizeF finalSize, RectangleF arrangeRect)
   bei Telerik.WinControls.UI.VirtualizedStackContainer`1.ArrangeOverride(SizeF finalSize)
   bei Telerik.WinControls.UI.ScrollableRowsContainerElement.ArrangeOverride(SizeF finalSize)
   bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect)
   bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect)
   bei Telerik.WinControls.UI.RowsContainerElement.ArrangeOverride(SizeF finalSize)
   bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect)
   bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect)
   bei Telerik.WinControls.UI.ScrollViewElement`1.ArrangeViewElement(RectangleF viewElementRect)
   bei Telerik.WinControls.UI.ScrollViewElement`1.ArrangeOverride(SizeF finalSize)
   bei Telerik.WinControls.RadElement.ArrangeCore(RectangleF finalRect)
   bei Telerik.WinControls.RadElement.Arrange(RectangleF finalRect)
   bei Telerik.WinControls.Layouts.ContextLayoutManager.UpdateLayout()
   bei Telerik.WinControls.UI.GridTableElement.UpdateOnRowExpandedCore(GridViewRowInfo row)
   bei Telerik.WinControls.UI.GridTableElement.UpdateOnRowExpanded(GridViewRowInfo row)
   bei Telerik.WinControls.UI.GridTableElement.UpdateOnRowPropertyChanged(GridViewRowInfo row, GridPropertyChangedEventArgs e)
   bei Telerik.WinControls.UI.GridTableElement.ProcessRowEvent(GridViewRowInfo row, GridViewEvent eventData)
   bei Telerik.WinControls.UI.GridTableElement.Telerik.WinControls.UI.IGridViewEventListener.ProcessEvent(GridViewEvent eventData)
   bei Telerik.WinControls.UI.GridViewEventProcessEntity.ProcessCollection(GridViewEvent gridEvent, PriorityWeakReferenceList list, GridEventProcessMode processMode)
   bei Telerik.WinControls.UI.GridViewEventProcessEntity.ProcessEvent(GridViewEvent gridEvent)
   bei Telerik.WinControls.UI.GridViewSynchronizationService.NotifyListeners(GridViewEvent gridEvent)
   bei Telerik.WinControls.UI.GridViewSynchronizationService.FlushEvents()
   bei Telerik.WinControls.UI.GridViewSynchronizationService.DispatchEvent(GridViewEvent gridEvent)
   bei Telerik.WinControls.UI.GridViewSynchronizationService.DispatchEvent(GridViewTemplate template, GridViewEvent eventData, Boolean postUI)
   bei Telerik.WinControls.UI.GridViewRowInfo.DispatchEvent(KnownEvents id, GridEventType type, GridEventDispatchMode dispatchMode, Object originator, Object[] arguments)
   bei Telerik.WinControls.UI.GridViewRowInfo.OnPropertyChanged(PropertyChangedEventArgs args)
   bei Telerik.WinControls.UI.GridViewDataRowInfo.OnPropertyChanged(PropertyChangedEventArgs e)
   bei Telerik.WinControls.UI.GridViewHierarchyRowInfo.OnPropertyChanged(PropertyChangedEventArgs e)
   bei Telerik.WinControls.UI.GridViewRowInfo.SetBooleanProperty(String propertyName, Int32 propertyKey, Boolean value)
   bei Telerik.WinControls.UI.GridViewRowInfo.set_IsExpanded(Boolean value)
   bei Telerik.WinControls.UI.GridGroupExpanderCellElement.expander_RadPropertyChanged(Object sender, RadPropertyChangedEventArgs e)
   bei Telerik.WinControls.RadPropertyChangedEventHandler.Invoke(Object sender, RadPropertyChangedEventArgs e)
   bei Telerik.WinControls.RadObject.OnPropertyChanged(RadPropertyChangedEventArgs e)
   bei Telerik.WinControls.RadElement.OnPropertyChanged(RadPropertyChangedEventArgs e)
   bei Telerik.WinControls.VisualElement.OnPropertyChanged(RadPropertyChangedEventArgs e)
   bei Telerik.WinControls.RadComponentElement.OnPropertyChanged(RadPropertyChangedEventArgs e)
   bei Telerik.WinControls.RadItem.OnPropertyChanged(RadPropertyChangedEventArgs e)
   bei Telerik.WinControls.UI.UIItemBase.OnPropertyChanged(RadPropertyChangedEventArgs e)
   bei Telerik.WinControls.UI.LightVisualElement.OnPropertyChanged(RadPropertyChangedEventArgs e)
   bei Telerik.WinControls.UI.ExpanderItem.OnPropertyChanged(RadPropertyChangedEventArgs e)
   bei Telerik.WinControls.RadObject.RaisePropertyNotifications(RadPropertyValue propVal, Object oldValue, Object newValue, ValueSource oldSource)
   bei Telerik.WinControls.RadObject.SetValueCore(RadPropertyValue propVal, Object propModifier, Object newValue, ValueSource source)
   bei Telerik.WinControls.RadElement.SetValueCore(RadPropertyValue propVal, Object propModifier, Object newValue, ValueSource source)
   bei Telerik.WinControls.UI.ExpanderItem.set_Expanded(Boolean value)
   bei Telerik.WinControls.UI.GridExpanderItem.set_Expanded(Boolean value)
   bei Telerik.WinControls.UI.ExpanderItem.ToggleExpanded()
   bei Telerik.WinControls.UI.ExpanderItem.OnMouseUp(MouseEventArgs e)
   bei Telerik.WinControls.RadElement.OnCLREventsRise(RoutedEventArgs args)
   bei Telerik.WinControls.RadElement.OnBubbleEvent(RadElement sender, RoutedEventArgs args)
   bei Telerik.WinControls.RadElement.RaiseBubbleEvent(RadElement sender, RoutedEventArgs args)
   bei Telerik.WinControls.RadItem.RaiseBubbleEvent(RadElement sender, RoutedEventArgs args)
   bei Telerik.WinControls.RadElement.RaiseRoutedEvent(RadElement sender, RoutedEventArgs args)
   bei Telerik.WinControls.RadElement.DoMouseUp(MouseEventArgs e)
   bei Telerik.WinControls.ComponentInputBehavior.OnMouseUp(MouseEventArgs e)
   bei Telerik.WinControls.RadControl.OnMouseUp(MouseEventArgs e)
   bei Telerik.WinControls.UI.RadGridView.OnMouseUp(MouseEventArgs e)
   bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   bei System.Windows.Forms.Control.WndProc(Message& m)
   bei System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   bei Telerik.WinControls.RadControl.WndProc(Message& m)
   bei Telerik.WinControls.UI.RadGridView.WndProc(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Julian
Top achievements
Rank 1
Iron
Iron
Iron
 updated answer on 27 Nov 2025
1 answer
19 views
What do I have to do to keep using CreateEntryFromFile and ZipFile that was once in the Telerik.WinControls?
Nadya | Tech Support Engineer
Telerik team
 answered on 26 Nov 2025
1 answer
16 views

Hi,

I was previously developing with Telerik UI for WinForms 2025 Q3. Recently, I installed the latest version (2025 Q4) using the MSI installer and then manually updated the NuGet packages in my project to complete the upgrade without using the Update Wizard. Everything works fine now.

However, every time I open the project in Visual Studio, I still see the notification:

"You are using an older version of Telerik UI for WinForms for this project. There is a new version available for this computer. Update Now"

Is there a way to disable or hide this notification after manually updating the NuGet packages?

Thanks in advance!

Nadya | Tech Support Engineer
Telerik team
 answered on 26 Nov 2025
1 answer
17 views

¡Hi everyone! Is there a possibility to have a RadContexMenu with rounded corners ?
I already change the styles via theme, but when I open the context menu, it has some white square corners behind.

The version I have right now is 2016 SP1

Dinko | Tech Support Engineer
Telerik team
 answered on 25 Nov 2025
1 answer
25 views

Our application doesn't explicitly set a default theme so it defaults to ControlDefault.
One screen uses the MaterialBlueGrey theme, so I wanted the related MessageBoxes to also use that theme.

Per the instructions I used the following code:

RadMessageBox.SetThemeName("MaterialBlueGrey");
RadMessageBox.Show("MESSAGE");
RadMessageBox.SetThemeName("ControlDefault");

The problem is that, although the overall look goes back to the default theme, some elements stay with the MaterialBlueGrey theme. For example: the button height & caption font.

I tried all these with the same result:

RadMessageBox.SetThemeName("");
RadMessageBox.ThemeName = "";
RadMessageBox.ThemeName = "ControlDefault";

Nadya | Tech Support Engineer
Telerik team
 answered on 18 Nov 2025
1 answer
22 views

I have a situation where I have code that executes when the Selected Node  is changed.

SelectedNodeChanged

 

The code in the SelectedNodeChange adds controls to some FlowLayoutPanel.

When a user clicks on a node, you can see the controls being added to the control

but the RadTreeView allows the user to select another node eventhough the SelectedNodeChange event has not finished, which

is now causing issues with the FlowLayoutPanelshowing duplicate controls.

 

If user waits until all controls are in the FlowLayoutPanel, and then selects another node, everything works as expected.

 

None of the code that adds the controls to the FlowLayoutPanel are Asynchronous.

 

I DO NOT have Multiselect = true.

 

** I have noticed that the RadTreeView acts as though it is Asynchronous when filling it.  I have code that fills the nodes and you can select the nodes and see the nodes being added behind the scenes. 

Maybe control is Asynchronous when changing selected nodes?

 

 

Nadya | Tech Support Engineer
Telerik team
 answered on 18 Nov 2025
1 answer
30 views
Hello, When I drag and drop an item in PageView, I would like it to create a copy of the item (page) when holding the Control key—either within the same PageView or between different PageViews. Could you help me achieve this? Thank you.
Dinko | Tech Support Engineer
Telerik team
 answered on 17 Nov 2025
1 answer
19 views

When using RadOpenFolderDialog, some people see their mapped drives and some do not. This includes people within my office would should all have their mapped drives created the same way.

Is there a way that I can ensure RadOpenFolderDialog always sees the mapped drives of the user?

Dinko | Tech Support Engineer
Telerik team
 answered on 17 Nov 2025
3 answers
24 views

Hello, I'm trying to display a chart by salesperson, grouped by month, showing the total sales amount. I've attached a photo. I've tried many things without success. Thank you for your time.

I work with WinForms and VB.NET

 

 

 

Jhon
Top achievements
Rank 1
Iron
 updated answer on 07 Nov 2025
Narrow your results
Selected tags
Tags
GridView
General Discussions
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
Edmond
Top achievements
Rank 1
Iron
fabrizio
Top achievements
Rank 2
Iron
Veteran
RobMarz
Top achievements
Rank 2
Iron
Fakhrul
Top achievements
Rank 1
Iron
Tejas
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Edmond
Top achievements
Rank 1
Iron
fabrizio
Top achievements
Rank 2
Iron
Veteran
RobMarz
Top achievements
Rank 2
Iron
Fakhrul
Top achievements
Rank 1
Iron
Tejas
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?