or
private void gvMainInfo_CellFormatting(object sender, CellFormattingEventArgs e) { if (e.CellElement.Value != null) { if ((e.CellElement.ColumnInfo).HeaderText == "Status") { GridCommandCellElement commandCell = (GridCommandCellElement)e.CellElement; RadButtonElement buttonElement = (RadButtonElement)commandCell.Children[0]; if (e.CellElement.Value.ToString() == "Acitvate") { buttonElement.Enabled = true; } else { buttonElement.Enabled = false; } }}namespace RadControlsWinFormsApp3{ partial class Form1 { /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.IContainer components; /// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.radGridView1 = new Telerik.WinControls.UI.RadGridView(); ((System.ComponentModel.ISupportInitialize)(this.radGridView1)).BeginInit(); this.SuspendLayout(); // // radGridView1 // this.radGridView1.Dock = System.Windows.Forms.DockStyle.Fill; this.radGridView1.Location = new System.Drawing.Point(0, 0); this.radGridView1.Name = "radGridView1"; this.radGridView1.Size = new System.Drawing.Size(364, 395); this.radGridView1.TabIndex = 0; this.radGridView1.Text = "radGridView1"; // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(364, 395); this.Controls.Add(this.radGridView1); this.Name = "Form1"; this.Text = "Form1"; ((System.ComponentModel.ISupportInitialize)(this.radGridView1)).EndInit(); this.ResumeLayout(false); } #endregion private Telerik.WinControls.UI.RadGridView radGridView1; }}using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using Telerik.WinControls.UI;namespace RadControlsWinFormsApp3{ public partial class Form1 : Form { List<RowHelper> rows = new List<RowHelper>(); colorhelper MyColors = new colorhelper(); public Form1() { InitializeComponent(); Telerik.WinControls.UI.GridViewDecimalColumn gridViewDecimalColumn1 = new Telerik.WinControls.UI.GridViewDecimalColumn(); Telerik.WinControls.UI.GridViewTextBoxColumn gridViewTextBoxColumn1 = new Telerik.WinControls.UI.GridViewTextBoxColumn(); Telerik.WinControls.UI.GridViewComboBoxColumn gridViewComboBoxColumn1 = new Telerik.WinControls.UI.GridViewComboBoxColumn(); Telerik.WinControls.UI.GridViewMultiComboBoxColumn gridViewComboBoxColumn2 = new Telerik.WinControls.UI.GridViewMultiComboBoxColumn(); rows.Add(new RowHelper(1, "Row1", 1, 200000)); rows.Add(new RowHelper(2, "Row2", 2, 400000)); rows.Add(new RowHelper(3, "Row3", 3, 600000)); rows.Add(new RowHelper(4, "Row4", 1, 1200000)); rows.Add(new RowHelper(5, "Row4", 1, 1800000)); rows.Add(new RowHelper(6, "Row4", 1, null)); rows.Add(new RowHelper(7, "Row4", 1, null)); rows.Add(new RowHelper(8, "Row4", 1, null)); rows.Add(new RowHelper(9, "Row4", 1, null)); rows.Add(new RowHelper(10, "Row4", 1, null)); rows.Add(new RowHelper(11, "Row4", 1, null)); rows.Add(new RowHelper(12, "Row4", 1, null)); rows.Add(new RowHelper(13, "Row4", 1, null)); rows.Add(new RowHelper(14, "Row4", 1, null)); rows.Add(new RowHelper(15, "Row4", 1, null)); rows.Add(new RowHelper(16, "Row4", 1, null)); rows.Add(new RowHelper(17, "Row4", 1, null)); rows.Add(new RowHelper(18, "Row4", 1, null)); rows.Add(new RowHelper(19, "Row4", 1, null)); rows.Add(new RowHelper(20, "Row4", 1, null)); rows.Add(new RowHelper(21, "Row4", 1, null)); rows.Add(new RowHelper(22, "Row4", 1, null)); rows.Add(new RowHelper(23, "Row4", 1, null)); rows.Add(new RowHelper(24, "Row4", 1, null)); rows.Add(new RowHelper(25, "Row4", 1, null)); List<helper> list = new List<helper>(); list.Add(new helper(1, "test1")); list.Add(new helper(2, "test2")); list.Add(new helper(3, "test3")); List<multicolumnhelper> multicolumnlist = new List<multicolumnhelper>(); multicolumnlist.Add(new multicolumnhelper(1, "test1", "col2")); multicolumnlist.Add(new multicolumnhelper(2, "test2", "col2")); multicolumnlist.Add(new multicolumnhelper(3, "test3", "col2")); gridViewComboBoxColumn1.DataSource = list; gridViewComboBoxColumn1.DisplayMember = "Value"; gridViewComboBoxColumn1.ValueMember = "ID"; gridViewComboBoxColumn1.HeaderText = "Test"; gridViewComboBoxColumn1.Name = "test"; gridViewComboBoxColumn1.FieldName = "RowID"; gridViewTextBoxColumn1.Name = "rowtext"; gridViewTextBoxColumn1.HeaderText = "rowtext"; gridViewTextBoxColumn1.FieldName = "RowText"; gridViewComboBoxColumn2.DataSource = multicolumnlist; gridViewComboBoxColumn2.DisplayMember = "Value"; gridViewComboBoxColumn2.ValueMember = "ID"; gridViewComboBoxColumn2.HeaderText = "Test"; gridViewComboBoxColumn2.Name = "test2"; gridViewComboBoxColumn2.FieldName = "RowID"; gridViewDecimalColumn1.Name = "ColorTest"; gridViewDecimalColumn1.HeaderText = "ColorTest"; gridViewDecimalColumn1.FieldName = "ColorTest"; radGridView1.Columns.AddRange(new Telerik.WinControls.UI.GridViewDataColumn[] { gridViewComboBoxColumn1, gridViewTextBoxColumn1, gridViewComboBoxColumn2, gridViewDecimalColumn1 }); radGridView1.CellFormatting += new CellFormattingEventHandler(radGridView1_CellFormatting); PopulateData(); this.radGridView1.CellEditorInitialized += new GridViewCellEventHandler(radGridView1_CellEditorInitialized); } void radGridView1_CellFormatting(object sender, CellFormattingEventArgs e) { if (e.Column.Name == "ColorTest") { if (e.CellElement.Value != null) { e.CellElement.DrawFill = true; try { Color useColor = MyColors.GetColorForValue((int)e.CellElement.Value); e.CellElement.BackColor = useColor; e.CellElement.BackColor2 = useColor; e.CellElement.BackColor3 = useColor; e.CellElement.BackColor4 = useColor; } catch (Exception) { } } } } void radGridView1_CellEditorInitialized(object sender, GridViewCellEventArgs e) { if (e.ActiveEditor is RadMultiColumnComboBoxElement) { RadMultiColumnComboBoxElement editor = (RadMultiColumnComboBoxElement)e.ActiveEditor; editor.DropDownWidth = 200; editor.EditorControl.ShowColumnHeaders = false; editor.EditorControl.Columns["ID"].IsVisible = false; editor.EditorControl.ShowRowHeaderColumn = false; } } private void PopulateData() { radGridView1.DataSource = rows; } } public class colorhelper { public colors DefaultColor = null; List<colors> myColors = new List<colors>(); public colorhelper() { myColors.Add(new colors(0, 300000, Color.Green, Color.Green)); myColors.Add(new colors(300000, 500000, Color.Green, Color.Yellow)); myColors.Add(new colors(500000, 1200000, Color.Yellow, Color.Red)); DefaultColor = myColors[2]; } public Color GetColorForValue(decimal Value) { colors col = myColors.Find(c => c.From <= Value && c.To >= Value); if (col == null) col = DefaultColor; return col.GetColor(Value); } public class colors{ public colors(int from, int to, Color fromcolor, Color tocolor) { From = from; To = to; FromColor = fromcolor; ToColor = tocolor; } public int From { get; set; } public int To { get; set; } public Color FromColor { get; set; } public Color ToColor { get; set; } public int size { get { return To - From; } } public int relativeValue(decimal value) { if (value > To) return 0; else return To - (int)value; } public Color GetColor(decimal Value) { int rMax = FromColor.R; int rMin = ToColor.R; int gMax = FromColor.G; int gMin = ToColor.G; int bMax = FromColor.B; int bMin = ToColor.B; var rAverage = Math.Abs(rMin + (int)((rMax - rMin) * relativeValue(Value) / size)); var gAverage = Math.Abs(gMin + (int)((gMax - gMin) * relativeValue(Value) / size)); var bAverage = Math.Abs(bMin + (int)((bMax - bMin) * relativeValue(Value) / size)); return Color.FromArgb(rAverage, gAverage, bAverage); } } } public class helper { public helper(int id, string value) { ID = id; Value = value; } public int ID { get; set; } public string Value { get; set; } } public class multicolumnhelper { public multicolumnhelper(int id, string value, string value2) { ID = id; Value = value; Value2 = value2; } public int ID { get; set; } public string Value { get; set; } public string Value2 { get; set; } } public class RowHelper { public RowHelper(int id, string text, int id2, int? value) { RowID = id; RowText = text; RowID2 = id2; ColorTest = value; } public int RowID { get; set; } public string RowText { get; set; } public int RowID2 { get; set; } public int? ColorTest { get; set; } }}