Hi,
I use GridView and custom cell element, however it is wrong to display, please help me to resolve it!
My code and video demo below
+ Change page size -> scroll -> change form size to normal -> hide to task bar -> re-open from task bar -> wrong
+ video: https://youtu.be/8ytr-AFMzRc
+ my code:
public partial class RadForm1 : Telerik.WinControls.UI.RadForm { public RadForm1() { InitializeComponent(); this.ThemeName = "TelerikMetro"; this.WindowState = System.Windows.Forms.FormWindowState.Maximized; var layer1 = new TableLayoutPanel(); layer1.Dock = DockStyle.Fill; layer1.Location = new Point(0); layer1.Margin = new Padding(0); layer1.ColumnCount = 2; layer1.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 30F)); layer1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F)); layer1.RowCount = 2; layer1.RowStyles.Add(new RowStyle(SizeType.Absolute, 28F)); layer1.RowStyles.Add(new RowStyle(SizeType.Absolute, 0F)); layer1.AutoSize = true; var label = new RadLabel(); label.Dock = DockStyle.Fill; label.Text = @"Test grid view"; label.ThemeName = "TelerikMetro"; layer1.Controls.Add(label, 0, 0); layer1.SetColumnSpan(label, 2); var radGridView1 = new RadGridView { Dock = DockStyle.Fill, AutoGenerateColumns = false, AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill, ThemeName = "TelerikMetroTouch", AllowDeleteRow = false, AllowAddNewRow = false, // AllowEditRow = false, EnableGrouping = false, EnablePaging = true, Margin = new Padding(5, 10, 5, 10), PageSize = 10, AllowColumnHeaderContextMenu = false, AllowRowHeaderContextMenu = false }; radGridView1.CreateCell += RadGridView1_CreateCell; radGridView1.Columns.Add(new GridViewMaskBoxColumn("col 1", "Column 1") { HeaderText = @"", ReadOnly = true, Width = 280, AllowSort = false, AllowResize = false, AllowReorder = false }); radGridView1.Columns.Add(new GridViewMaskBoxColumn("col 2", "Column 2")); radGridView1.Columns.Add(new GridViewMaskBoxColumn("col 3", "Column 3")); radGridView1.Columns.Add(new GridViewMaskBoxColumn("col 4", "Column 4")); radGridView1.Columns.Add(new GridViewMaskBoxColumn("col 5", "Column 5")); radGridView1.Columns.Add(new GridViewMaskBoxColumn("col 6", "Column 6")); radGridView1.Columns.Add(new GridViewMaskBoxColumn("col 7", "Column 7")); radGridView1.Columns.Add(new GridViewMaskBoxColumn("col 8", "Column 8")); radGridView1.Columns.Add(new GridViewMaskBoxColumn("col 9", "Column 9")); radGridView1.Columns.Add(new GridViewMaskBoxColumn("col 10", "Column 10")); radGridView1.Columns.Add(new GridViewMaskBoxColumn("col 11", "Column 11")); RenderData(radGridView1); GridViewUpdateHeight(radGridView1); var layer2 = new TableLayoutPanel(); layer2.Dock = DockStyle.Fill; layer2.Location = new Point(0); layer2.Margin = new Padding(0); layer2.ColumnCount = 1; layer2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F)); layer2.RowCount = 1; layer2.RowStyles.Add(new RowStyle(SizeType.Absolute, radGridView1.Height)); layer2.AutoSize = true; layer2.Controls.Add(radGridView1, 0, 0); layer1.Controls.Add(layer2, 1, 1); layer1.RowStyles[1].SizeType = SizeType.AutoSize; Controls.Add(layer1); } private void GridViewUpdateHeight(RadGridView grid) { var actualRowCount = grid.RowCount < grid.PageSize ? grid.RowCount : grid.PageSize; var height = actualRowCount * 40; if (grid.AllowAddNewRow && !grid.ReadOnly) { height += grid.MasterView.TableAddNewRow.GetActualHeight(grid.TableElement); } if (grid.EnableFiltering) { height += grid.MasterView.TableFilteringRow.GetActualHeight(grid.TableElement); } if (grid.ShowColumnHeaders) { height += grid.MasterView.TableHeaderRow.GetActualHeight(grid.TableElement); } if (grid.EnablePaging) { height += 50; } height += 20; // horizontal scroll bar height grid.Height = height; } private void RenderData(RadGridView radGridView1) { for (int k = 0; k < 100; k++) { GridViewDataRowInfo rowInfo = new GridViewDataRowInfo(radGridView1.MasterView); rowInfo.Height = 40; for (int i = 1; i < radGridView1.Columns.Count; i++) { rowInfo.Cells[i].Value = "Row: " + k + " - column: " + i; } radGridView1.Rows.Add(rowInfo); } } private void RadGridView1_CreateCell(object sender, GridViewCreateCellEventArgs e) { if (e.Row is GridFilterRowElement) return; if (e.Column.Index == 0) { if (e.Row is GridTableHeaderRowElement && e.CellType == typeof(GridHeaderCellElement)) { e.CellElement = new PageSizeDropdownHeaderCellElement(e.Column, e.Row); } if (e.Row is GridDataRowElement) { var actionCellElement = new ActionCellElement(e.Column, e.Row); e.CellElement = actionCellElement; } } } } public sealed class PageSizeDropdownHeaderCellElement : GridHeaderCellElement { public PageSizeDropdownHeaderCellElement(GridViewColumn col, GridRowElement row) : base(col, row) { TextAlignment = ContentAlignment.TopCenter; Alignment = ContentAlignment.TopCenter; AutoSizeMode = RadAutoSizeMode.FitToAvailableSize; } private RadDropDownListElement _dropDownListElement; protected override void CreateChildElements() { base.CreateChildElements(); if (_dropDownListElement?.DataSource == null) { _dropDownListElement = new RadDropDownListElement(); _dropDownListElement.BindingContext = new BindingContext(); _dropDownListElement.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList; _dropDownListElement.Items.Clear(); _dropDownListElement.Items.Add(new RadListDataItem("10", 10) { Selected = true }); _dropDownListElement.Items.Add(new RadListDataItem("25", 25)); _dropDownListElement.Items.Add(new RadListDataItem("50", 50)); _dropDownListElement.Items.Add(new RadListDataItem("100", 100)); _dropDownListElement.Items.Add(new RadListDataItem("All", -1)); _dropDownListElement.Margin = new Padding(15, 0, 0, 0); _dropDownListElement.StretchHorizontally = true; _dropDownListElement.NotifyParentOnMouseInput = false; _dropDownListElement.Popup.MouseClick -= Popup_MouseClick; _dropDownListElement.Popup.MouseClick += Popup_MouseClick; _dropDownListElement.PopupClosed -= _dropDownListElement_PopupClosed; _dropDownListElement.PopupClosed += _dropDownListElement_PopupClosed; _dropDownListElement.FitToSizeMode = RadFitToSizeMode.FitToParentPadding; _dropDownListElement.AutoSizeMode = RadAutoSizeMode.FitToAvailableSize; _dropDownListElement.AutoSize = true; this.Children.Add(_dropDownListElement); } } private RadListVisualItem _elementUnderMouse; private void Popup_MouseClick(object sender, MouseEventArgs e) { _elementUnderMouse = _dropDownListElement.Popup.ElementTree.GetElementAtPoint(e.Location) as RadListVisualItem; } private void _dropDownListElement_PopupClosed(object sender, RadPopupClosedEventArgs args) { if (_elementUnderMouse == null) { return; } if (_dropDownListElement.SelectedIndex == -1) return; var pageSize = Convert.ToInt32(_elementUnderMouse.Data.Value); if (pageSize == -1) { pageSize = GridControl.RowCount < 1000 ? 1000 : GridControl.RowCount; } // Backup selected pageSize and re-select when re-render grid view RowInfo.Tag = pageSize; GridControl.PageSize = pageSize; _elementUnderMouse = null; } protected override void SetContentCore(object value) { if (_dropDownListElement != null && RowInfo?.Tag != null) { this._dropDownListElement.SelectedValue = (int)RowInfo.Tag; } } public override bool IsCompatible(GridViewColumn data, object context) { return context is GridTableHeaderRowElement; } protected override Type ThemeEffectiveType => typeof(GridHeaderCellElement); } public sealed class ActionCellElement : GridDataCellElement { #region Public Delegates public delegate void EventHandler(object sender, EventArgs e); #endregion Public Delegates #region Public Events public event EventHandler OnSelectedRecord; public event EventHandler OnUnSelectedRecord; #endregion Public Events #region Private Fields public GridViewCheckBoxElement CheckBoxElement; public RadButtonElement BtnFlag; public RadButtonElement BtnTimeCircle; #endregion Private Fields private readonly RadOffice2007ScreenTipElement _screenTip; #region Public Constructors public ActionCellElement(GridViewColumn column, GridRowElement row) : base(column, row) { Name = "ActionCell_" + RowIndex; Text = string.Empty; _screenTip = new RadOffice2007ScreenTipElement(); _screenTip.MainTextLabel.Padding = new Padding(2); _screenTip.CaptionLabel.Padding = new Padding(2); _screenTip.CaptionLabel.Text = @"<html><color=red>Created Date"; BtnTimeCircle.ScreenTip = _screenTip; } #endregion Public Constructors public void SetFlagImage(GridViewRowInfo rowInfo = null) { if (rowInfo != null) { RowInfo = rowInfo; } } #region Protected Methods protected override SizeF ArrangeOverride(SizeF finalSize) { SizeF size = base.ArrangeOverride(finalSize); RectangleF clientRect = GetClientRectangle(finalSize); float marginX = 4; float width = clientRect.Width - (Children.Count + 1) * 4; foreach (RadElement element in this.Children) { var btnWidth = width / Children.Count; element.Arrange(new RectangleF( marginX, clientRect.Top + 2, btnWidth, clientRect.Height - 4)); marginX += btnWidth + 4; } return size; } protected override void CreateChildElements() { BtnFlag = new GridViewButtonElement(GetChildElementName("btnFlag"), Resources.USDA_icon_RedFlag); BtnTimeCircle = new GridViewButtonElement(GetChildElementName("btnTimeCircle"), Resources.USDA_icon_TimeCircle); CheckBoxElement = new GridViewCheckBoxElement(GetChildElementName("chkBoxItem")); CheckBoxElement.ToggleState = ToggleState.Off; CheckBoxElement.AutoSizeMode = RadAutoSizeMode.FitToAvailableSize; BtnTimeCircle.AutoSizeMode = RadAutoSizeMode.FitToAvailableSize; BtnFlag.AutoSizeMode = RadAutoSizeMode.FitToAvailableSize; Children.Clear(); Children.Add(CheckBoxElement); Children.Add(BtnFlag); Children.Add(BtnTimeCircle); } #endregion Protected Methods #region Private Methods private string GetChildElementName(string elementName) { return elementName; } #endregion Private Methods } public sealed class GridViewCheckBoxElement : RadCheckBoxElement { public bool MultiSelect { get; set; } public GridViewCheckBoxElement(string name, string text = null) { DisplayStyle = DisplayStyle.Text; Name = name; Text = text; Alignment = ContentAlignment.MiddleCenter; ShowBorder = false; BackColor = Color.White; CheckAlignment = ContentAlignment.MiddleCenter; TextAlignment = ContentAlignment.MiddleCenter; MultiSelect = false; } } public sealed class GridViewButtonElement : RadButtonElement { public GridViewButtonElement(string name, Image image = null, string text = null) { if (image != null) { Image = ResizeImage(image, 25, 25); ImageAlignment = ContentAlignment.MiddleCenter; } DisplayStyle = image != null && string.IsNullOrWhiteSpace(text) ? DisplayStyle.ImageAndText : image != null ? DisplayStyle.Image : DisplayStyle.Text; Name = name; Text = text; Alignment = ContentAlignment.MiddleCenter; ShowBorder = false; BackColor = Color.White; } private Bitmap ResizeImage(Image image, int width, int height) { var destRect = new Rectangle(0, 0, width, height); var destImage = new Bitmap(width, height); destImage.SetResolution(image.HorizontalResolution, image.VerticalResolution); using (var graphics = Graphics.FromImage(destImage)) { graphics.CompositingMode = CompositingMode.SourceCopy; graphics.CompositingQuality = CompositingQuality.HighQuality; graphics.InterpolationMode = InterpolationMode.HighQualityBicubic; graphics.SmoothingMode = SmoothingMode.HighQuality; graphics.PixelOffsetMode = PixelOffsetMode.HighQuality; using (var wrapMode = new ImageAttributes()) { wrapMode.SetWrapMode(WrapMode.TileFlipXY); graphics.DrawImage(image, destRect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, wrapMode); } } return destImage; } }Thanks,
Paul.

I cannot get any Events to Fire for radGridView (C#).
Examples:
private void radGridView1_Click(object sender, EventArgs e)
{
MessageBox.Show("Event Fired");
}
void radGridView1_CellValueChanged(object sender, GridViewCellEventArgs e)
{
MessageBox.Show("Event Fired");
}
Is there a missing reference or something?


Please see the attached image. Can someone explain to me how to have the forecolor of the text, currently shown in red, to only display as red if the Source <> Employee? In the image, only one employees hours / units should be displayed in red (the employee whose source = Third Party).
Apologies to admins for the double posting, but my deadline to complete this requirement is running out.
Can someone please offer some advice? Surely this scenario has come up before.
Thanks in advance.
I am having trouble removing the blank space between hierarchies / childviews when using the RadVirtualGrid to display hierarchical data.
(see Image01 attached)
If I set
MasterViewInfo.Padding = new Padding(0);
and
e.ChildViewInfo.Padding = new Padding(0);
the situation improves (see Image02 attached), but I still can't seem to remove all of the spacing between childviews.
Any ideas?
Thanks,
Tom
Hello i wanna ask about this ...
i have a button with this code
Private Sub BtnBaru_Click(sender As System.Object, e As System.EventArgs) Handles BtnBaru.Click
xStatus = "NEW"
MCCBRekening.Enabled = True
Isi_MCCBRekening()
TxtKodeSubRekening.Enabled = True
End Sub
and procedure Isi_MCCBRekening
Private Sub Isi_MCCBRekening()
Dim TblMstRekening As DataTable
TblMstRekening = ds.Tables.Add("Rekening")
With TblMstRekening
.Columns.Add("Kode", GetType(String))
.Columns.Add("Nama", GetType(String))
End With
Using conn As New OleDbConnection(str)
conn.Open()
da = New OleDbDataAdapter("SELECT KodeRekening as Kode, NamaRekening as Nama FROM MstRekening ORDER BY KodeRekening", conn)
ds = New DataSet
ds.Clear()
TblMstRekening.Rows.Add(New Object() {"", ""})
da.Fill(TblMstRekening)
da.Dispose()
conn.Close()
End Using
With MCCBRekening
.MultiColumnComboBoxElement.DropDownWidth = 500
.DataSource = TblMstRekening
.BestFitColumns()
.EditorControl.EnableCustomFiltering = True
.SelectedValue = ""
.AutoFilter = True
.DisplayMember = "Kode"
.ValueMember = "Kode"
.Text = ""
Dim filter As New FilterDescriptor()
filter.PropertyName = Me.MCCBRekening.ValueMember
filter.[Operator] = FilterOperator.Contains
Me.MCCBRekening.EditorControl.MasterTemplate.FilterDescriptors.Add(filter)
MCCBRekening.MultiColumnComboBoxElement.EditorControl.EnableCustomFiltering = True
AddHandler .MultiColumnComboBoxElement.EditorControl.CustomFiltering, AddressOf MCCBRekening_CustomFiltering
AddHandler .KeyDown, AddressOf MCCBRekening_KeyDown
End With
End Sub
Private Sub MCCBRekening_CustomFiltering(ByVal sender As Object, ByVal e As Telerik.WinControls.UI.GridViewCustomFilteringEventArgs)
Dim element As RadMultiColumnComboBoxElement = MCCBRekening.MultiColumnComboBoxElement
Dim textToSearch As String = MCCBRekening.Text
If AutoCompleteMode.Append = (element.AutoCompleteMode And AutoCompleteMode.Append) Then
If element.SelectionLength > 0 AndAlso element.SelectionStart > 0 Then
textToSearch = MCCBRekening.Text.Substring(0, element.SelectionStart)
End If
End If
If String.IsNullOrEmpty(textToSearch) Then
e.Visible = True
For i As Integer = 0 To element.EditorControl.ColumnCount - 1
e.Row.Cells(i).Style.Reset()
Next
e.Row.InvalidateRow()
Return
End If
e.Visible = False
For i As Integer = 0 To element.EditorControl.ColumnCount - 1
Dim text As String = e.Row.Cells(i).Value.ToString()
If text.IndexOf(textToSearch, 0, StringComparison.InvariantCultureIgnoreCase) >= 0 Then
e.Visible = True
e.Row.Cells(i).Style.CustomizeFill = True
e.Row.Cells(i).Style.DrawFill = True
e.Row.Cells(i).Style.BackColor = Color.FromArgb(201, 252, 254)
Else
e.Row.Cells(i).Style.Reset()
End If
Next
e.Row.InvalidateRow()
End Sub
Private Sub MCCBRekening_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs) Handles MCCBRekening.KeyDown
With MCCBRekening
If e.KeyCode = System.Windows.Forms.Keys.Enter Then
If .ValueMember <> "" Then
.SelectedValue = .EditorControl.CurrentRow.Cells(.ValueMember).Value
Else
.SelectedValue = .EditorControl.CurrentRow.Cells(.DisplayMember).Value
End If
.Text = .EditorControl.CurrentRow.Cells(.DisplayMember).Value.ToString()
.MultiColumnComboBoxElement.ClosePopup()
.MultiColumnComboBoxElement.TextBoxElement.TextBoxItem.SelectAll()
End If
End With
End Sub
Private Sub MCCBRekening_DropDownClosed(ByVal sender As Object, ByVal args As Telerik.WinControls.UI.RadPopupClosedEventArgs) Handles MCCBRekening.DropDownClosed
If MCCBRekening.SelectedIndex <> -1 Then
lblNamaRekening.Text = MCCBRekening.EditorControl.Rows(MCCBRekening.SelectedIndex).Cells(1).Value.ToString
TxtKodeRekening.Text = MCCBRekening.EditorControl.Rows(MCCBRekening.SelectedIndex).Cells(0).Value.ToString
Else
TxtKodeRekening.Text = ""
lblNamaRekening.Text = ""
End If
End Sub
Private Sub MCCBRekening_Validated(ByVal sender As Object, ByVal e As System.EventArgs) Handles MCCBRekening.Validated
If MCCBRekening.Text = "" Then
TxtKodeRekening.Text = ""
lblNamaRekening.Text = ""
End If
End Sub
my question is :
why if i click the button for the second time it's give me error message ... the "Kode" is not belong to TblMstRekening ....
how i fix this thanks ...
Hello!
I was wondering if anyone knew of a simple algorithm to take a bunch of existing Lat/Lon points and calculate a rectangle out of them? I'm trying to have the map view center and zoom to fit a list of points automatically. I know how to center on one particular point but not sure how to do so for a group of points. I'm used to using the Google Maps API which has a function where you can keep adding geo points and it creates a bounding rectangle. Does RadMap have something similar to that?
Thanks! :)

Hi, i'm just tried telerik trial & newbie in telerik winform. I've read and looked up the documentation manual but i dont found flyout.
i want to question, how to create flyout for winform like my attach files:
thanks you.
:)

I have my own Grid Class based off of a RadGridView control, because I use the same formatting/settings in multiple places. When I drag my grid to my form, everything seems fine, but when I add data to it, nothing is formatted. The ROWS/COLUMNS have no formatting, no grid lines, etc. Not sure what I am doing wrong here. Any help would be greatly appreciated.
public class NtsRadGridView : RadGridView { #region Public Constructors public NtsRadGridView() { MasterTemplate.AllowAddNewRow = false; MasterTemplate.AllowCellContextMenu = false; MasterTemplate.AllowColumnChooser = false; MasterTemplate.AllowColumnHeaderContextMenu = false; MasterTemplate.AllowDeleteRow = false; MasterTemplate.AllowDragToGroup = false; MasterTemplate.AllowEditRow = false; MasterTemplate.AllowRowHeaderContextMenu = false; MasterTemplate.AllowRowResize = false; MasterTemplate.AllowSearchRow = true; MasterTemplate.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill; MasterTemplate.ViewDefinition = new TableViewDefinition(); ShowGroupPanel = false; }}