Telerik Forums
UI for WinForms Forum
1 answer
6 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
16 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
9 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
59 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
11 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
17 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
1 answer
26 views

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.

Dinko | Tech Support Engineer
Telerik team
 answered on 01 Jan 2026
2 answers
72 views

RadMenuItem's TEXT shown too small ? how can i fix it ? 

 

Top achievements
Rank 1
Iron
Iron
Iron
 answered on 26 Dec 2025
2 answers
38 views

Hello,

I’m working with some older forms that use System.Windows.Forms.DataGridView. The form is quite complex, so converting it to Telerik isn’t straightforward.

I’d like to copy a row from RadPageView. Could you please provide a sample code snippet showing how to achieve this?

Thank you!

Radek

Radek
Top achievements
Rank 2
Bronze
Iron
Iron
 answered on 17 Dec 2025
1 answer
57 views

Hello,

I have a question about the behavior of the Text property in the CellFormatting event in GridView. I understand that GridView uses UI virtualization, and that I need to reset all modified properties for the rest of cells. But how does the Text property behave? I looked through the forum and found this example:

private void radGridView1_CellFormatting(object sender, CellFormattingEventArgs e)
        {
            if (e.Column.Name == "Description")
            {
                e.CellElement.Text = e.CellElement.Value + " END";
                e.CellElement.Image = Properties.Resources.OutlookViewCalendar;
                e.CellElement.DrawImage = true;
                e.CellElement.TextImageRelation = TextImageRelation.TextBeforeImage;
            }
            else
            { 
                e.CellElement.ResetValue(LightVisualElement.ImageProperty, ValueResetFlags.Local);
                e.CellElement.ResetValue(LightVisualElement.DrawImageProperty, ValueResetFlags.Local);
                e.CellElement.ResetValue(LightVisualElement.TextImageRelationProperty, ValueResetFlags.Local);
            }
        }

In this example, all properties are reset except Text. When I tried to reset Text, all cell texts disappeared, except the ones I set manually in CellFormatting. So I think Text has special behavior in CellFormatting, and it's always set from Value at the beginning and it's not affected by UI virtualization and reusing cells. Is that correct?

Also, just to be sure, in all examples I saw the if/else pattern. But functionally, is it the same as if I reset all properties I want to change at the beginning, and then set them later? Or can this have some performance impact? The reason I ask is that I use a switch with more branches, and it would be hard to track what needs to be reset in each one.

Here is my case. And I was also thinking, in my case, is it correct to reset the properties before checking ColumnIndex and RowIndex, or after?

private void rgv_CellFormatting(object sender, CellFormattingEventArgs e)
		{
			e.CellElement.ResetValue(LightVisualElement.BackColorProperty, ValueResetFlags.Local);
			e.CellElement.ResetValue(LightVisualElement.NumberOfColorsProperty, ValueResetFlags.Local);
			e.CellElement.ResetValue(LightVisualElement.DrawFillProperty, ValueResetFlags.Local);
			e.CellElement.ResetValue(LightVisualElement.PaddingProperty, ValueResetFlags.Local);
			//e.CellElement.ResetValue(LightVisualElement.TextProperty, ValueResetFlags.Local);

			if ((e.ColumnIndex < 0) || (e.RowIndex < 0))
				return;

			var ed = e.Row.DataBoundItem as TestParEditorItem;
			if (ed == null)
				return;

			bool isSub = ed.IsSubItem;
			bool hasSub = ed.HasSubItems;

			switch (e.Column.Name)
			{
				case "colR":
				case "colFi":
				case "colR2":
				case "colFi2":
					if (isSub)
						e.CellElement.Text = "";
					break;

				case "colMin":
				case "colMax":
					if (hasSub)
						e.CellElement.Text = "";
					break;

				case "colAct":
					e.CellElement.BackColor = SystemColors.ControlLight;
					e.CellElement.NumberOfColors = 1;
					e.CellElement.DrawFill = true;
					break;

				case "colType":
					if (isSub)
					{
						e.CellElement.Text = ed.SubItemName;
						e.CellElement.Padding = new Padding(30, 0, 0, 0);
					}
					else
					{
						e.CellElement.Padding = new Padding(0, 0, 0, 0);
					}
					break;
			}
		}

Thanks.

Nadya | Tech Support Engineer
Telerik team
 answered on 16 Dec 2025
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
Top achievements
Rank 1
Iron
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
ivory
Top achievements
Rank 1
Iron
Nurik
Top achievements
Rank 2
Iron
Iron
YF
Top achievements
Rank 1
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Top achievements
Rank 1
Iron
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
ivory
Top achievements
Rank 1
Iron
Nurik
Top achievements
Rank 2
Iron
Iron
YF
Top achievements
Rank 1
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?