Telerik Forums
UI for WinForms Forum
0 answers
4 views

I have what seems like a simple task.

My grid looks like this:

and I create it by pulling the data and passing it to the SetupGrid() method (partially) shown below which creates the columns and sets the DataSource.  This part works fine.

        private void SetupGrid(RadGridView grid,
                                List<Dictionary>? dictionaryList,
                                List<CreditInquirySetupEF>? efList,
                                List<CreditInquirySetupTU>? tuList)
        {
            grid.Columns.Clear();
            grid.Rows.Clear();
            grid.Templates.Clear();

            grid.MasterTemplate.AutoGenerateColumns = true;
            grid.MasterTemplate.ReadOnly = true;
            grid.MasterTemplate.ShowChildViewCaptions = false;
            grid.MasterTemplate.ShowRowHeaderColumn = false;

            grid.ShowRowHeaderColumn = false;
            grid.ShowChildViewCaptions = false;

            GridViewTemplate template1 = new GridViewTemplate();
            GridViewTemplate templateApp = new GridViewTemplate();

            if (efList is not null)
            {
                template1.AutoGenerateColumns = false;
                template1.DataSource = null;
                template1.DataSource = efList;
                template1.AllowAddNewRow = false;
                template1.ReadOnly = true;
                template1.ShowRowHeaderColumn = false;
                template1.Caption = string.Empty;

                grid.MasterTemplate.Templates.Add(template1);

                template1.MasterTemplate.ShowChildViewCaptions = false;

                GridViewRelation relation1 = new GridViewRelation(grid.MasterTemplate);
                relation1.ChildTemplate = template1;
                relation1.RelationName = "EQVendorID";
                relation1.ParentColumnNames.Add("DictionaryKey");
                relation1.ChildColumnNames.Add("VendorID");
                grid.Relations.Add(relation1);
            }

            if (tuList is not null)
            {
                templateApp.AutoGenerateColumns = false;
                templateApp.DataSource = null;
                templateApp.DataSource = tuList;
                templateApp.AllowAddNewRow = false;
                templateApp.ReadOnly = true;
                templateApp.ShowRowHeaderColumn = false;
                templateApp.ShowChildViewCaptions = false;
                grid.MasterTemplate.Templates.Add(templateApp);

                GridViewRelation relationApp = new GridViewRelation(grid.MasterTemplate);
                relationApp.ChildTemplate = templateApp;
                relationApp.RelationName = "TUVendorID";
                relationApp.ParentColumnNames.Add("DictionaryKey");
                relationApp.ChildColumnNames.Add("VendorID");
                grid.Relations.Add(relationApp);
            }

            grid.DataSource = null;
            grid.DataSource = dictionaryList;

            grid.MasterTemplate.Columns["BranchID"].IsVisible = false;
            grid.MasterTemplate.Columns["DictionaryID"].IsVisible = false;
            grid.MasterTemplate.Columns["DictionaryKey"].IsVisible = false;
            grid.MasterTemplate.Columns["DictionaryKeyString"].IsVisible = false;
            grid.MasterTemplate.Columns["DictionaryTypeID"].IsVisible = false;
            grid.MasterTemplate.Columns["Active"].IsVisible = false;

            grid.MasterTemplate.Columns["Description"].Width = 300;
            grid.MasterTemplate.Columns["Description"].HeaderText = "Bureau Name";
            grid.MasterTemplate.Columns["Description"].HeaderTextAlignment = ContentAlignment.MiddleLeft;

            var buttonCol = new GridViewImageColumn();

            buttonCol = new GridViewImageColumn();
            buttonCol.HeaderText = "";
            buttonCol.Name = "Propertys";
            buttonCol.HeaderImage = VisionUI.Properties.Resources.Plus_13;
            buttonCol.Width = 30;
            buttonCol.AllowSort = false;

            grid.MasterTemplate.Columns.Add(buttonCol);


            if (efList is not null)
            {
                grid.MasterTemplate.Templates[0].Caption = "";

                var column = new GridViewTextBoxColumn();

                column.FieldName = "VendorID";
                column.Name = "VendorID";
                column.IsVisible = false;
                grid.MasterTemplate.Templates[0].Columns.Add(column);


                column = new GridViewTextBoxColumn();

                column.FieldName = "SettingsBranchID";
                column.Name = "SettingsBranchID";
                column.IsVisible = false;
                grid.MasterTemplate.Templates[0].Columns.Add(column);


                column = new GridViewTextBoxColumn();

                column.FieldName = "ServiceName";
                column.Name = "ServiceName";
                column.Width = 145;
                column.HeaderText = "Service Name";
                column.HeaderTextAlignment = ContentAlignment.MiddleLeft;
                column.TextAlignment = ContentAlignment.MiddleLeft;
                column.IsVisible = true;
                grid.MasterTemplate.Templates[0].Columns.Add(column);

The problem comes when I delete a row in the subgrid and physically removing it from the db table. I tried removing the deleted entry from the collection and refreshing and even pulling the data from the database again like this:

               int settingsBranchID = absUIControls.GetGridValueInt(gvServiceNames, "SettingsBranchID");

               await creditInquirySetupEF.DeleteServiceNameAsync(settingsBranchID);
               await creditInquirySetupTU.DeleteServiceNameAsync(settingsBranchID);

               vendorList = CommonServices.GetDictionary(EDictionaryType.CreditInquiryVendor, creditInquirySetupEF.BranchID, false);

               creditInquirySetupEFList = await creditInquirySetupEF.GetCreditInquirySetupEFAsync(creditInquirySetupEF.BranchID);
               creditInquirySetupTUList = await creditInquirySetupTU.GetCreditInquirySetupTUAsync(creditInquirySetupTU.BranchID);

               gvServiceNames.DataSource = null;
               gvServiceNames.Templates[0].DataSource = null;
               gvServiceNames.Templates[1].DataSource = null;

               gvServiceNames.DataSource = vendorList;
               gvServiceNames.Templates[0].DataSource = creditInquirySetupEFList;
               gvServiceNames.Templates[1].DataSource = creditInquirySetupTUList;

               gvServiceNames.Refresh();
               gvServiceNames.Templates[0].Refresh();
               gvServiceNames.Templates[1].Refresh();


               foreach (var item in gvServiceNames.Rows)
               {
                   item.IsExpanded = true;
               }

               gvServiceNames.Templates[0].Rows[0].IsSelected = true;

When I reassign the datasources, for some reason the top grid formats like this:



Any ideas as to why?

Thanks

Carl

 


Carl
Top achievements
Rank 1
Iron
Iron
Iron
 asked on 06 Feb 2026
1 answer
8 views

private void radGridView1_ContextMenuOpening(object sender, ContextMenuOpeningEventArgs e) { var cellElement = e.ContextMenuProvider as GridCellElement; if (cellElement == null) return;

if (cellElement is GridHeaderCellElement)
{
    RadMenuItem exportExcel = new RadMenuItem($"ExportToExcel");
    exportExcel.Click += (s, args) => { ExportToExcel(); };
    e.ContextMenu.Items.Add(exportExcel);
}

}

After upgrade to UI.for.WinForms.AllControls.Net80 <Version>2025.4.1321

cellElement is null in the above line

then return

i can not see "RadMenuItem($"ExportToExcel")"

WHY?

Nadya | Tech Support Engineer
Telerik team
 updated answer on 04 Feb 2026
1 answer
9 views

 

Hello.

I'm currently using VS2019, Telerik version 2021.3.914.40.

When I Shift-click and then MouseDown on a row in radGridView,

the last clicked RowIndex is internally saved.

When I Shift + MouseDown, the last clicked RowIndex is set as the StartIndex, and the last clicked RowIndex is set as the EndIndex.

I'd like to reset this internal RowIndex, which is saved by the last click.

Since GridView.ClearSelection() doesn't handle this code, I've attached the relevant project. Please check.

Dinko | Tech Support Engineer
Telerik team
 answered on 03 Feb 2026
1 answer
12 views

I'm trying to eliminate the tab that says table on the subgrids below. I've tried 

     template1.ShowChildViewCaptions = false;

     template1.MasterTemplate.ShowChildViewCaptions = false;

     grid.ShowChildViewCaptions = false;

     grid.MasterTemplate.ShowChildViewCaptions = false;

Nothing works. What am I doing wrong?

Thanks

Carl

 

Nadya | Tech Support Engineer
Telerik team
 answered on 30 Jan 2026
1 answer
14 views
Hello,
Currently using L4G (Version 11.7) in client mode (WebClient V11 on the PC)-server with a Pasoe configuration on the Linux server (where OpenEdge (DLC), PasOE, databases, and the _DB-REQUIRED program tree are located).
I need to migrate to version 12.2 + Telerik screen.
Do you have an example of a simple grid screen with CRUD management on a Be in client-server mode?
- Read the table: READ
- Create a record: CREATE
- Modify the table: UPDATE
- Delete a record: DELETE
Thank you
Dinko | Tech Support Engineer
Telerik team
 answered on 28 Jan 2026
2 answers
22 views

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

Nadya | Tech Support Engineer
Telerik team
 answered on 22 Jan 2026
1 answer
14 views

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

Nadya | Tech Support Engineer
Telerik team
 answered on 22 Jan 2026
4 answers
62 views

Hello,

I want to choose column by checkboxes, something like that:

I

It is possible?

Thank you for your answer

Nadya | Tech Support Engineer
Telerik team
 answered on 22 Jan 2026
1 answer
16 views

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 

Nadya | Tech Support Engineer
Telerik team
 answered on 20 Jan 2026
1 answer
24 views

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 ?

Dinko | Tech Support Engineer
Telerik team
 answered on 20 Jan 2026
Narrow your results
Selected tags
Tags
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
MessageBox
TrackBar
Rotator
SpinEditor
CheckedListBox
StatusStrip
LayoutControl
ShapedForm
SyntaxEditor
Wizard
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
Overlay
Security
LocalizationProvider
Dictionary
SplashScreen
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
Cynthia
Top achievements
Rank 1
Iron
Toby
Top achievements
Rank 3
Iron
Iron
Iron
Danielle
Top achievements
Rank 1
Iron
Iron
Joel
Top achievements
Rank 3
Bronze
Bronze
Iron
yw
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Cynthia
Top achievements
Rank 1
Iron
Toby
Top achievements
Rank 3
Iron
Iron
Iron
Danielle
Top achievements
Rank 1
Iron
Iron
Joel
Top achievements
Rank 3
Bronze
Bronze
Iron
yw
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?