Completed
Last Updated: 03 Sep 2019 07:00 by ADMIN
Release R3 2019

Please use the following code snippet to setup the Gantt view:

Sub New()

                 


        InitializeComponent()

        Dim dt As New DataTable
        dt.Columns.Add("ID", GetType(Integer))
        dt.Columns.Add("Group_ID", GetType(Integer))
        dt.Columns.Add("Title", GetType(String))
        dt.Columns.Add("Start", GetType(DateTime))
        dt.Columns.Add("End", GetType(DateTime))

        dt.Rows.Add(-999, 0, "Root", New DateTime(2019, 8, 21), New DateTime(2019, 8, 30))
        dt.Rows.Add(6, -999, "Item 1", New DateTime(2019, 8, 21), New DateTime(2019, 8, 23))
        dt.Rows.Add(7, -999, "Item 2", New DateTime(2019, 8, 26), New DateTime(2019, 8, 30))
        dt.Rows.Add(1000, 6, "Sub1.1", New DateTime(2019, 8, 21), New DateTime(2019, 8, 22))
        dt.Rows.Add(1001, 6, "Sub1.2", New DateTime(2019, 8, 22), New DateTime(2019, 8, 23))
        dt.Rows.Add(1002, 6, "Sub1.3", New DateTime(2019, 8, 23), New DateTime(2019, 8, 23))
        dt.Rows.Add(1003, 7, "Sub2.1", New DateTime(2019, 8, 26), New DateTime(2019, 8, 29))



        Me.RadGanttView1.DataSource = dt
        Me.RadGanttView1.ChildMember = "ID"
        Me.RadGanttView1.ParentMember = "Group_ID"
        Me.RadGanttView1.TitleMember = "Title"
        Me.RadGanttView1.StartMember = "Start"
        Me.RadGanttView1.EndMember = "End"

        Me.RadGanttView1.Columns.Add("ID")
        Me.RadGanttView1.Columns.Add("Title")
        Me.RadGanttView1.GanttViewElement.GraphicalViewElement.TimelineStart = New DateTime(2019, 8, 20)
    End Sub 

However, if you switch the order of adding the rows, not all items will be visible in RadGanttView:

dt.Rows.Add(1000, 6, "Sub1.1", New DateTime(2019, 8, 21), New DateTime(2019, 8, 22))
        dt.Rows.Add(1001, 6, "Sub1.2", New DateTime(2019, 8, 22), New DateTime(2019, 8, 23))
        dt.Rows.Add(1002, 6, "Sub1.3", New DateTime(2019, 8, 23), New DateTime(2019, 8, 23))
        dt.Rows.Add(1003, 7, "Sub2.1", New DateTime(2019, 8, 26), New DateTime(2019, 8, 29))

        dt.Rows.Add(-999, 0, "Root", New DateTime(2019, 8, 21), New DateTime(2019, 8, 30))
        dt.Rows.Add(6, -999, "Item 1", New DateTime(2019, 8, 21), New DateTime(2019, 8, 23))
        dt.Rows.Add(7, -999, "Item 2", New DateTime(2019, 8, 26), New DateTime(2019, 8, 30))

Completed
Last Updated: 28 Aug 2019 11:36 by ADMIN
Release R3 2019
Created by: Kun
Comments: 1
Category: TreeView
Type: Bug Report
2

Hello,

I use radbreadcrumb as a group path explorer in my software. 

I associate it with a treeview. Please see the attache photos.

When I select a treeviewitem which has too much parent levels, the radbreadcrumb can not display the path completely.

I've tried autoscrollmargin and autoscrollminsize. No luck. Because my radbreadcrumb is in a splitcontainerpanel, the display size is changeable.

I expect a custom function can act like Windows Explorer (see the last attach photo). When there is no enough display space, only the last levels are shown.

 

PS. I've integrated the telerik solution from this post. And it works great. 

https://www.telerik.com/forums/getting-breadcrumb-to-act-like-windows-explorer-breadcrumb

 

Thank you by advance.

Kun

 

Completed
Last Updated: 27 Aug 2019 12:20 by ADMIN
Release R3 2019

Please refer to the attached sample project and follow the steps from the gif file. The scrollbar needs to be in the middle.

Note: the issue can be reproduced without action list as well.

Completed
Last Updated: 27 Aug 2019 12:15 by ADMIN
Release R3 2019

 The scroll in the SuggestedActionsElement cannot be made visible, one can scroll only with the mouse. Introduce a property so there is an indication that additional items are available.

In addition, the CreateChatElement in RadChat class should be made virtual. 

Completed
Last Updated: 22 Aug 2019 13:22 by ADMIN
To reproduce: run the attached project and toggle the checkbox in the header cell of the child template. 

Workaround: use a custom GridCheckBoxHeaderCellElement


    public partial class RadForm1 : Telerik.WinControls.UI.RadForm
    {
        public RadForm1()
        {
            InitializeComponent();

            this.radGridView1.CreateCell += radGridView1_CreateCell;

            DataTable dt = new DataTable();
            dt.Columns.Add("CategoryId", typeof(int));
            dt.Columns.Add("CategoryName", typeof(string));
            dt.Columns.Add("ParentCategoryId", typeof(int));

            dt.Rows.Add(1, "Category1", 0);
            dt.Rows.Add(2, "Category2", 0);
            dt.Rows.Add(3, "Category3", 0);

            Random rand = new Random();
            for (int i = 4; i < 20; i++)
            {
                dt.Rows.Add(i, "Category" + i, rand.Next(1, 4));
            }
            this.radGridView1.Relations.AddSelfReference(this.radGridView1.MasterTemplate, "CategoryId", "ParentCategoryId");
            this.radGridView1.DataSource = dt;
            this.radGridView1.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill;

            GridViewTemplate childTemplate = CreateChildTemplate();
            GridViewRelation relation = new GridViewRelation(
                this.radGridView1.MasterTemplate,
                childTemplate);
            relation.ChildColumnNames.Add("CategoryId");
            relation.ParentColumnNames.Add("CategoryId");
            this.radGridView1.Relations.Add(relation);
        }

        private void radGridView1_CreateCell(object sender, GridViewCreateCellEventArgs e)
        {
            if (e.CellType == typeof(GridCheckBoxHeaderCellElement))
            {
                e.CellElement = new CustomGridCheckBoxHeaderCellElement(e.Column, e.Row);
            }
        }

        private GridViewTemplate CreateChildTemplate()
        {
            GridViewTemplate childTemplate = new GridViewTemplate();
            childTemplate.AutoGenerateColumns = false;
            this.radGridView1.Templates.Add(childTemplate);

            GridViewDecimalColumn decColumn = new GridViewDecimalColumn
            {
                Name = "CategoryId",
                HeaderText = "CategoryId Id",
                FieldName = "CategoryId",
                IsVisible = false,
                MinWidth = 100
            };
            childTemplate.Columns.Add(decColumn);

            GridViewTextBoxColumn tbxColumn = new GridViewTextBoxColumn
            {
                Name = "RightName",
                HeaderText = "Right Name",
                FieldName = "RGT_NAME",
                ReadOnly = true,
                MinWidth = 100
            };
            childTemplate.Columns.Add(tbxColumn);

            GridViewCheckBoxColumn chkxColumn = new GridViewCheckBoxColumn
            {
                Name = "Checkbox",
                EnableHeaderCheckBox = true,
                FieldName = "HasAccess",
            };
            childTemplate.Columns.Add(chkxColumn);
            childTemplate.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
            return childTemplate;
        }

        public class CustomGridCheckBoxHeaderCellElement : GridCheckBoxHeaderCellElement
        {
            public CustomGridCheckBoxHeaderCellElement(GridViewColumn column, GridRowElement row) : base(column, row)
            {
            }

            public bool SuspendProcessingToggleStateChanged
            {
                get
                {
                    FieldInfo fi = typeof(GridCheckBoxHeaderCellElement).GetField("suspendProcessingToggleStateChanged", BindingFlags.NonPublic | BindingFlags.Instance);
                    return (bool)fi.GetValue(this);
                }
                set
                {
                    FieldInfo fi = typeof(GridCheckBoxHeaderCellElement).GetField("suspendProcessingToggleStateChanged", BindingFlags.NonPublic | BindingFlags.Instance);
                    fi.SetValue(this, value);
                }
            }

            public bool ShouldCheckDataRows
            {
                get
                {
                    FieldInfo fi = typeof(GridCheckBoxHeaderCellElement).GetField("shouldCheckDataRows", BindingFlags.NonPublic | BindingFlags.Instance);
                    return (bool)fi.GetValue(this);
                }
                set
                {
                    FieldInfo fi = typeof(GridCheckBoxHeaderCellElement).GetField("shouldCheckDataRows", BindingFlags.NonPublic | BindingFlags.Instance);
                    fi.SetValue(this, value);
                }
            }

            protected override void checkbox_ToggleStateChanged(object sender, StateChangedEventArgs args)
            {
                if (SuspendProcessingToggleStateChanged)
                {
                    return;
                }

                if (this.ViewTemplate != null && !this.ViewTemplate.IsSelfReference && !this.MasterTemplate.IsSelfReference)
                {
                    this.MasterTemplate.BeginUpdate();
                }
                else
                {
                    this.TableElement.BeginUpdate();
                }

                object valueState = DBNull.Value;

                if (args.ToggleState == ToggleState.On)
                {
                    valueState = true;
                }
                else if (args.ToggleState == ToggleState.Off)
                {
                    valueState = false;
                }
                else if (args.ToggleState == ToggleState.Indeterminate)
                {
                    valueState = null;
                }

                RaiseToggleStateEvent();

                if (!ShouldCheckDataRows)
                {
                    if (this.ViewTemplate != null && !this.ViewTemplate.IsSelfReference && !this.MasterTemplate.IsSelfReference)
                    {
                        this.MasterTemplate.EndUpdate(true, new DataViewChangedEventArgs(ViewChangedAction.DataChanged));
                    }

                    return;
                }

                this.GridViewElement.EditorManager.EndEdit();

                this.TableElement.BeginUpdate();
                this.MasterTemplate.MasterViewInfo.TableSearchRow.SuspendSearch();
                List<GridViewRowInfo> list = GetRowsToIterateOver();
                foreach (GridViewRowInfo rowInfo in list)
                {
                    GridViewGroupRowInfo groupRow = rowInfo as GridViewGroupRowInfo;

                    if (groupRow != null)
                    {
                        this.CheckAllCheckBoxInChildRows(groupRow, valueState);
                    }
                    else
                    {
                        rowInfo.Cells[this.ColumnIndex].Value = valueState;
                    }
                }
                this.MasterTemplate.MasterViewInfo.TableSearchRow.ResumeSearch();
                this.TableElement.EndUpdate(false);

                if (this.ViewTemplate != null && !this.ViewTemplate.IsSelfReference && !this.MasterTemplate.IsSelfReference)
                {
                    this.MasterTemplate.EndUpdate(true, new DataViewChangedEventArgs(ViewChangedAction.DataChanged));
                }
                else
                {
                    this.TableElement.EndUpdate(false);
                }

                this.TableElement.Update(GridUINotifyAction.DataChanged);
            }

            private void CheckAllCheckBoxInChildRows(GridViewGroupRowInfo row, object state)
            {
                List<GridViewRowInfo> list = new List<GridViewRowInfo>();

                foreach (GridViewRowInfo rowInfo in row.ChildRows)
                {
                    list.Add(rowInfo);
                }

                foreach (GridViewRowInfo rowInfo in list)
                {
                    GridViewGroupRowInfo groupInfo = rowInfo as GridViewGroupRowInfo;
                    if (groupInfo != null)
                    {
                        this.CheckAllCheckBoxInChildRows(groupInfo, state);
                    }
                    else
                    {
                        rowInfo.Cells[this.ColumnIndex].Value = state;
                    }
                }
            }

            private List<GridViewRowInfo> GetRowsToIterateOver()
            {
                if (this.ViewTemplate != null && this.ViewTemplate.IsSelfReference)
                {
                    PrintGridTraverser traverser = new PrintGridTraverser(this.ViewInfo);
                    List<GridViewRowInfo> result = new List<GridViewRowInfo>();

                    while (traverser.MoveNext())
                    {
                        if (traverser.Current is GridViewDataRowInfo)
                        {
                            result.Add(traverser.Current);
                        }
                    }

                    return result;
                }

                return new List<GridViewRowInfo>(this.ViewInfo.Rows);
            }
        }
    }
Completed
Last Updated: 20 Aug 2019 13:20 by ADMIN
Release R3 2019

By default, if you need to format the cells in RadCalendar, the ElementRender event is an appropriate solution. However, it doesn't process the row/column header cell elements illustrated in the attached screenshot.

Workaround:

            MonthViewElement mve = (MonthViewElement)this.radCalendar1.CalendarElement.CalendarVisualElement;
            foreach (CalendarCellElement cell in mve.TableElement.Children)
            {
                if (cell.Row == 0)
                {
                    cell.DrawFill = true;
                    cell.BackColor = Color.Red;
                } 
            } 

Completed
Last Updated: 20 Aug 2019 11:34 by ADMIN
Release R3 2019

Please refer to the attached sample project and run it. Select a random item and press the button. You will obtain the error. If no selection is available, the item is removed as expected. 

Workaround: use Begin/EndUpdate block while deleting a record from the DataTable:

        Me.RadGanttView1.BeginUpdate()
        _dataset.Tables("Tasks").Rows.RemoveAt(2)
        Me.RadGanttView1.EndUpdate()

Completed
Last Updated: 15 Aug 2019 15:27 by ADMIN
Release R3 2019 (LIB 2019.2.819)
To reproduce:
1. Add a pin to the map.
radMap1.Layers.Add(new MapLayer("PinLayer"));
MapPin pin = new MapPin(new Telerik.WinControls.UI.Map.PointG(47.60357, -122.32945));
pin.BackColor = Color.Red;
radMap1.Layers[0].Add(pin);
2. Run the project and zoom out.
3. Resize vertically the map(form).

Workaround:
Call Pan method to recalculate RadMapElement.ViewportInPixels on SizeChanged. 
private void RadMap1_SizeChanged(object sender, EventArgs e)
{
    this.radMap1.Pan(this.radMap1.MapElement.PanOffset.Width, this.radMap1.MapElement.PanOffset.Height);
}
Completed
Last Updated: 15 Aug 2019 14:26 by ADMIN
Release R3 2019 (LIB 2019.2.819)

To reproduce:

private void RadButton5_Click(object sender, EventArgs e)
{
    RadButton labelControl = new RadButton();
    labelControl.Size = new Size(200, 30);
    labelControl.Text = "Test";

    layoutControlItem1.AssociatedControl = labelControl;
}

Workaround: 
private void RadButton5_Click(object sender, EventArgs e)
{
    RadButton labelControl = new RadButton();
    labelControl.Size = new Size(200, 30);
    labelControl.Text = "Test";

    ((RadLayoutControlControlCollection)this.radLayoutControl1.Controls).RemoveInternal(layoutControlItem1.AssociatedControl);
    ((RadLayoutControlControlCollection)this.radLayoutControl1.Controls).AddInternal(labelControl);
    layoutControlItem1.AssociatedControl = labelControl;

    layoutControlItem1.UpdateControlBounds();
   
}

 

Completed
Last Updated: 15 Aug 2019 14:26 by ADMIN
Release R3 2019 (LIB 2019.2.819)
Created by: Jeff
Comments: 1
Category: FileDialogs
Type: Bug Report
1
If I set .InitialDirectory to a network path, the Tree Navigation Pane shows multiple instances of the network path. I've collapsed several of them so you can see it more easily in the image. Am I missing a setting? Can this be prevented in the Directory Requesting sub?
Completed
Last Updated: 15 Aug 2019 14:26 by ADMIN
Release R3 2019 (LIB 2019.2.819)
Created by: Jeff
Comments: 1
Category: FileDialogs
Type: Bug Report
1

Maybe I'm doing this wrong but it works with the standard .Net SaveFileDialog. No matter how many filters I add or which FilterIndex I set, the last filter is always activated.

With DF.RadSaveFileDialog1
    .SaveFileDialogForm.StartPosition = FormStartPosition.CenterParent
    .SaveFileDialogForm.Text = "Save File As - " & DF.OriginalTitle
    .SaveFileDialogForm.ThemeName = "Fluent"
    .CustomPlaces.Clear()
    .ShowNetworkLocations = False
    .InitialDirectory = My.Application.Info.DirectoryPath()
    .Filter = "Word Document (*.docx)|*.docx|PDF Document (*.pdf)|*.pdf"
    .RestoreDirectory = True
    .FilterIndex = 1
    .ShowDialog()
End With
Completed
Last Updated: 15 Aug 2019 14:26 by ADMIN
Release R3 2019 (LIB 2019.2.819)

To reproduce:

this.radMaskedEditBox1.Mask = "n";
this.radMaskedEditBox1.MaskType = Telerik.WinControls.UI.MaskType.Numeric;
radMaskedEditBox1.Value = 1234;
radMaskedEditBox1.MaskedEditBoxElement.Culture = new CultureInfo("en-CA") { NumberFormat = { NumberDecimalDigits = 0, NumberGroupSeparator = String.Empty } };

 

Completed
Last Updated: 15 Aug 2019 13:54 by ADMIN
Release R3 2019 (LIB 2019.2.819)

Please run the attached sample project. Select one of the child tasks and click the button. The new task is expected to be inserted at the selected item's position. However, it is appended at the bottom as it is demonstrated in the gif file.

Workaround: rebind RadGanttView after inserting a new row to the DataTable: 

    Private Sub RadButton1_Click(sender As Object, e As EventArgs) Handles RadButton1.Click
        Try
            If Me.RadGanttView1.SelectedItem IsNot Nothing Then
                Dim i_rowIndex As Int32 = _dataset.Tables("Tasks").Rows.IndexOf(Me.RadGanttView1.SelectedItem.DataBoundItem.Row)
                Dim i_datarow As DataRow = _dataset.Tables("Tasks").NewRow
                Dim i_startDate As Date = New Date(Today.Year, Today.Month, Today.Day, 8, 0, 0)
                i_datarow("ID") = 3001
                i_datarow("ParentID") = _projektID
                i_datarow("Bezeichnung") = "inserted Aufgabe"
                i_datarow("Start") = i_startDate.AddHours(6 * 5)
                i_datarow("Ende") = i_startDate.AddHours(6 + 100)
                _dataset.Tables("Tasks").Rows.InsertAt(i_datarow, i_rowIndex)
                Me.RadGanttView1.DataSource = Nothing
                With Me.RadGanttView1.GanttViewElement
                    .TaskDataMember = "Tasks"
                    .ChildMember = "ID"
                    .ParentMember = "ParentID"
                    .TitleMember = "Bezeichnung"
                    .StartMember = "Start"
                    .EndMember = "Ende"
                End With
                Me.RadGanttView1.DataSource = _dataset
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

 

Completed
Last Updated: 15 Aug 2019 13:26 by ADMIN
Release R3 2019 (LIB 2019.2.819)
Please run the attached sample and move the spreadsheet on a monitor with 125% DPI scaling. Then, enter some text in the first cell that exceeds the column's width and double-click the header to best-fit the column. You will notice that RadSpreadsheet hangs and it is not possible to proceed with the further execution of the form.
Completed
Last Updated: 30 Jul 2019 13:03 by ADMIN
Inside the constructor of a form create a pie series and populate it with data. Then add it to a RadChartView. You will notice that there are two legend items per data point.
Completed
Last Updated: 25 Jul 2019 14:56 by ADMIN
Release R3 2019 (LIB 2019.2.729)
I have RadDiagram on Form and registered ShapeDoubleClicked event on it.

After double click on a shape I open another modal form (let's call it form2). The second mouse click is fired on a modal form (Form2) which in some cases, based on shape position in Form1 (precisely when the shape is in center of the screen), change the state of my ToogleSwitch which is in center of Form2.
Completed
Last Updated: 25 Jul 2019 14:47 by ADMIN
Release R3 2019 (LIB 2019.2.729)

https://docs.telerik.com/devtools/winforms/controls/gridview/filtering/setting-filters-programmatically-(composite-descriptors)

When creating a composite filter descriptor with a value that contains an array of enums, it generates an expression with IN, and an exception is thrown when adding it to the FilterDescriptors on a RadGridView control.

 

Exception Message:

{"The expression contains undefined function call In()."}

 

The expression value is: ([RandomPropertyName] IN (1,3,9) OR [RandomPropertyName] = 10)

 

We have recently upgraded from 2015.2.728.40 (where this worked) to the Feb. 2019 version, then today upgraded to the May 2019 version. The issue remains.

 

The project includes the following Telerik references:

 

Telerik.WinControls

Telerik.WinControls.GridView

Telerik.WinControls.PdfViewer

Telerik.WinControls.RadDock

Telerik.WinControls.RadMarkupEditor

Telerik.WinControls.UI

Telerik.Windows.Documents.Core

Telerik.Windows.Documents.Fixed

Telerik.Windows.Zip

TelerikCommon

 

Completed
Last Updated: 25 Jul 2019 14:46 by ADMIN
Release R3 2019 (LIB 2019.2.729)

Please run the attached sample project. 

1. Click the Child Form button.

2. Maximize the MDI child form either by clicking the maximized button or by double-clicking the title bar.

You will notice that there is an empty space between the docked command bar and the top edge of the form.

 

Completed
Last Updated: 22 Jul 2019 14:50 by ADMIN
Release R3 2019 (LIB 2019.2.729)

Workaround:

private void RadDropDownButton1_DropDownOpening(object sender, EventArgs e)
{
    var args = e as RadPopupOpeningEventArgs;
    var popupSize = radDropDownButton1.DropDownButtonElement.DropDownMenu.Size;
    var x = args.CustomLocation.X - (popupSize.Width - radDropDownButton1.Width);
    args.CustomLocation = new Point(x, args.CustomLocation.Y);
}

Completed
Last Updated: 22 Jul 2019 13:57 by ADMIN
Release R3 2019 (LIB 2019.2.729)

To reproduce:

Type a word and then change the font. The RichTextEditor is not focused. When you click in it the font is restored.

Workaround: 
class MyRichtTextEditorRibbonbar : RichTextEditorRibbonBar
{
    public MyRichtTextEditorRibbonbar()
    {
        this.dropDownListFont.PopupClosed += DropDownListFont_PopupClosed;
    }

    private void DropDownListFont_PopupClosed(object sender, RadPopupClosedEventArgs args)
    {
        this.associatedRichTextEditor.Focus();
    }

  
}