From a34fef78b0f119d6d3d1b8ad41496005edbde1ec Mon Sep 17 00:00:00 2001 From: SwathiDhatchanamoorthi Date: Fri, 11 Nov 2022 13:13:53 +0530 Subject: [PATCH] WF-64705 - Updated the README file --- README.md | 47 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bd60f0f..2ad1c1c 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,45 @@ -# How to differentiate combobox column from other columns in non-editable in view in winforms datagrid? -This example illustrates how to differentiate combobox column from other columns in non-editable in view in winforms datagrid +# How to differentiate combobox column from other columns in non-editable display mode in WinForms DataGrid (SfDataGrid) + +## Differentiate combobox column from other columns + +Normally, the drop-down arrow for [GridComboBoxColumn](https://help.syncfusion.com/cr/wpf/Syncfusion.UI.Xaml.Grid.GridComboBoxColumn.html) will be shown only in the edit mode. You can differentiate the combo box column from other columns by showing the drop-down arrow in the display mode by creating custom renderer for the combo box column. + +## C# + +```C# +public Form1() +{ + InitializeComponent(); + this.sfDataGrid1.CellRenderers["ComboBox"] = new CustomComboBoxCellRenderer(); +} + +public class CustomComboBoxCellRenderer : GridComboBoxCellRenderer +{ + protected override void OnRender(Graphics paint, Rectangle cellRect, string cellValue, CellStyleInfo style, DataColumnBase column, Syncfusion.WinForms.GridCommon.ScrollAxis.RowColumnIndex rowColumnIndex) + { + base.OnRender(paint, cellRect, cellValue, style, column, rowColumnIndex); + var dropDownbuttonRect = new Rectangle(cellRect.X + cellRect.Width - 17, cellRect.Y + (cellRect.Height / 2), 8, 4); + paint.DrawLine(new Pen(Color.Gray), dropDownbuttonRect.X, dropDownbuttonRect.Y, dropDownbuttonRect.X + (dropDownbuttonRect.Width / 2), dropDownbuttonRect.Y + dropDownbuttonRect.Height); + paint.DrawLine(new Pen(Color.Gray), dropDownbuttonRect.X + dropDownbuttonRect.Width, dropDownbuttonRect.Y, dropDownbuttonRect.X + (dropDownbuttonRect.Width / 2), dropDownbuttonRect.Y + dropDownbuttonRect.Height); + } +} +``` + +## VB + +```VB +Public Sub New() + InitializeComponent() + Me.sfDataGrid1.CellRenderers("ComboBox") = New CustomComboBoxCellRenderer() +End Sub + +Public Class CustomComboBoxCellRenderer + Inherits GridComboBoxCellRenderer + Protected Overrides Sub OnRender(ByVal paint As Graphics, ByVal cellRect As Rectangle, ByVal cellValue As String, ByVal style As CellStyleInfo, ByVal column As DataColumnBase, ByVal rowColumnIndex As Syncfusion.WinForms.GridCommon.ScrollAxis.RowColumnIndex) + MyBase.OnRender(paint, cellRect, cellValue, style, column, rowColumnIndex) + Dim dropDownbuttonRect = New Rectangle(cellRect.X + cellRect.Width - 17, cellRect.Y + (cellRect.Height \ 2), 8, 4) + paint.DrawLine(New Pen(Color.Gray), dropDownbuttonRect.X, dropDownbuttonRect.Y, dropDownbuttonRect.X + (dropDownbuttonRect.Width \ 2), dropDownbuttonRect.Y + dropDownbuttonRect.Height) + paint.DrawLine(New Pen(Color.Gray), dropDownbuttonRect.X + dropDownbuttonRect.Width, dropDownbuttonRect.Y, dropDownbuttonRect.X + (dropDownbuttonRect.Width \ 2), dropDownbuttonRect.Y + dropDownbuttonRect.Height) + End Sub +End Class +```