Telerik Forums
UI for WinForms Forum
1 answer
52 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
1 answer
185 views

i want to custimize RadMessageBox  

example  :  set the TitleBar.Font  BackColor

set  radLabel1  font and backcolor 

set button 's font and button's  szie ....

Dinko | Tech Support Engineer
Telerik team
 answered on 30 Dec 2025
2 answers
97 views

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

 

Top achievements
Rank 1
Iron
Iron
Iron
 answered on 26 Dec 2025
1 answer
109 views
Hello, I want to create a rounded form.

I want to convert existing forms created using RadForm into rounded forms.

I want to create a BaseRoundedForm that inherits from RadForm.

Is there a way to do this?

I'm using C#.

Since ShapedForm inherits from Form, it may be difficult to apply it to existing RadForm forms.

Nadya | Tech Support Engineer
Telerik team
 answered on 23 Dec 2025
2 answers
57 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
53 views

Hi All,

I searched on internet for the solution but didn't find any solution. I am using RadTreeView control, when I move mouse over treeview, nodes get highlighted. I used following ways but no luck.

private void radTreeList_NodeMouseMove(object sender, RadTreeViewMouseEventArgs e)
{
    e.Node.BackColor = Color.Transparent; // Remove hover background
}

 

    private void radTreeList_NodeFormatting(object sender, TreeNodeFormattingEventArgs e)
    {
        e.NodeElement.BackColor = Color.Transparent; // Remove hover background
        e.NodeElement.DrawFill = false; // Disable fill

        if (e.Node.Selected)
        {
            e.Node.BackColor = Color.Blue; // Default background
            e.Node.ForeColor = Color.White;      // Default text color
        }
        else
        {
            e.NodeElement.ContentElement.ResetValue(LightVisualElement.BackColorProperty, ValueResetFlags.Local);
            e.NodeElement.ContentElement.ResetValue(LightVisualElement.ForeColorProperty, ValueResetFlags.Local);
        }           
    }

 

Kindly provide me solution, stuck on this for a long time.

 

Thanks

 

Nadya | Tech Support Engineer
Telerik team
 answered on 17 Dec 2025
1 answer
45 views

Hi All,

I have implemented the Telerik window tree view control in my project, in output when I move mouse over nodes, get highlighted. I need to remove that one.

I tried the following ways but no luck.

 

 private void radTreeList_NodeMouseMove(object sender, RadTreeViewMouseEventArgs e)
 {
     e.Node.BackColor = Color.Transparent; // Remove hover background
 }

 

  private void radTreeList_NodeFormatting(object sender, TreeNodeFormattingEventArgs e)
  {
      e.NodeElement.BackColor = Color.Transparent; // Remove hover background
      e.NodeElement.DrawFill = false; // Disable fill

      if (e.Node.Selected)
      {
          e.Node.BackColor = Color.Blue; // Default background
          e.Node.ForeColor = Color.White;      // Default text color
      }
      else
      {
          e.NodeElement.ContentElement.ResetValue(LightVisualElement.BackColorProperty, ValueResetFlags.Local);
          e.NodeElement.ContentElement.ResetValue(LightVisualElement.ForeColorProperty, ValueResetFlags.Local);
      }           
  }

 

Please provide me a solution to get rid off this problem.

 

Thanks,

Ravinder Singh

Nadya | Tech Support Engineer
Telerik team
 answered on 17 Dec 2025
2 answers
213 views

i add some "CommandBarButton"s into RadCommandBar

i need image like "Add/Edit/Cancel/Delete"

Do Telerik provide images for use  ?

Do i need png or  SVG  File ?

CHATGPT tell me there is "Telerik.WinControls.UI.RadImageList"

but i can not find it

 

Top achievements
Rank 1
Iron
Iron
Iron
 answered on 16 Dec 2025
1 answer
79 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
2 answers
92 views

i use VS2022  .net8

i create a new project to try RadTreeView 

ptoject file as attached

but

1. The Text of Form shown on the VS2022 IDE is so small

2. At Run Time  i can not see anything  in the RadTreeView  

can anyone help me

thanks a lot

Top achievements
Rank 1
Iron
Iron
Iron
 answered on 16 Dec 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
SplitContainer
Documentation
Map
DesktopAlert
CheckedDropDownList
ProgressBar
MessageBox
TrackBar
Rotator
SpinEditor
CheckedListBox
StatusStrip
CollapsiblePanel
LayoutControl
ShapedForm
SyntaxEditor
Wizard
TextBoxControl
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
RibbonForm
Styling
Barcode
PopupEditor
TaskBoard
NavigationView
Callout
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
SpeechToTextButton
+? more
Top users last month
Bohdan
Top achievements
Rank 3
Iron
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Elliot
Top achievements
Rank 1
Iron
Iron
Iron
Sunil
Top achievements
Rank 1
Cynthia
Top achievements
Rank 1
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Bohdan
Top achievements
Rank 3
Iron
Iron
Iron
Rob
Top achievements
Rank 3
Bronze
Bronze
Iron
Elliot
Top achievements
Rank 1
Iron
Iron
Iron
Sunil
Top achievements
Rank 1
Cynthia
Top achievements
Rank 1
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?