Approved
Last Updated: 15 Nov 2019 18:29 by Jason

Hi Progress Team,

 

I have encountered another issue in the RadPopupEditor control. For RadSpinEditor controls as well as for RadTextBox controls on the Popup container form, no value changed or validating/validation events are fired. For RadSpinEditor controls the ValueChanged event is fired when the spin buttons are used to change the value but when the user directly enters a value in the editor element and the control losts the focus (either by TAB or mouse click outside the control) the ValueChanged event is missing.

I have attached a small VS2017 project which illustrates the issue.

Thank you very much!

 

Regards,

 

Jürgen

Declined
Last Updated: 15 Nov 2019 13:47 by ADMIN
Created by: tstephens
Comments: 5
Category: DropDownList
Type: Bug Report
0

I am using Visual Studio 2019, version 16.3.1 and when using the DropDownList and running it in the VS debugger, the DropDownList get populated properly, but when you click the down arrow for the first time, the list drops down and you can scroll with the mouse wheel, but it will not allow you to select anything with the mouse.

If you click the down arrow to close the list, and click it again to reopen the list, it works properly - selecting the item chosen.

I have tried numerous property setting in attempt to narrow down if any of the properties set are causing it, but have been unsuccessful.

I have created several test projects with only 1 form and only the dropdownlist on the form and this happens reliably in every project I have tested within Visual Studio.

If I build the executable and run it directly, the DropDownList works properly as expected.

The DropDownList version is listed as 2019.3.917.40 in Visual Studio 2019 16.3.1.

I opened the project in JetBrains Rider on the same machine and everything works fine.

Declined
Last Updated: 14 Nov 2019 16:26 by ADMIN
Created by: Jorge
Comments: 1
Category: PdfViewer
Type: Bug Report
0

Hi

I'm using PDFViewer to display several documents in my application. Most of them are shown the right way, but there are others that appear "empty", or with some graphic elements but no text. I can see them perfectly with external third party viewers.

I've just downloaded and installed 2019.3.1022, but this issue remains.

I send some samples of PDF that are not showing.

Thank you in advance for your help.

Under Review
Last Updated: 13 Nov 2019 08:32 by ADMIN
Created by: Larry
Comments: 1
Category: RichTextEditor
Type: Bug Report
1
There appears to be an issue when adding Comments that overlap each other. I will attach a video to my next reply that shows how to replicate the issue.
Approved
Last Updated: 12 Nov 2019 14:59 by ADMIN
To reproduce: please run the application provided in the ticket. You will notice that RadGridView stops updating.

Workaround: use MethodInvoker for the update operation:

        private void readTicks()
        {
            DateTime now = DateTime.Now;
            Tick previouse = null;
            for (int i = 0; i < lines.Length; i++)
            {
                if (canceled)
                    return;

                var t = new Tick();

                try
                {
                    try
                    {
                        JsonConvert.PopulateObject(lines[i], t);
                    }
                    catch
                    {
                        continue;
                    }


                    var c = contracts[t.ContractId];
                    c.Row[(int)t.TickType] = t;
                    c.CurrentTickSetNr++;

                    if (this.radGridView1.InvokeRequired)
                    {
                        this.radGridView1.Invoke(new MethodInvoker(delegate { c.Fire(t); }));
                    }
                    else
                    {
                        c.Fire(t);
                    }

                    previouse = t;
                    OnTick?.Invoke(c.ConId, i);
                }
                catch (Exception e)
                {
                    Debug.WriteLine(e.Message);
                }
            }

            OnDone?.Invoke(this, new EventArgs());
        }
Approved
Last Updated: 12 Nov 2019 14:58 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Sr.
Comments: 0
Category: UI for WinForms
Type: Bug Report
3
To reproduce: add a RadLabel and change its cursor to Hand.

 this.radLabel1.Cursor = Cursors.Hand;

The PixelatedHandCursor.png shows the poor quality of the cursor which should be improved.

Workaround: https://stackoverflow.com/questions/6016995/un-antialiased-hand-cursor-in-windows-forms-apps/6017174#6017174

    public class LinkLabelEx : RadLabel
    {
        private const int WM_SETCURSOR = 0x0020;
        private const int IDC_HAND = 32649;

        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        private static extern IntPtr LoadCursor(IntPtr hInstance, int lpCursorName);

        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        private static extern IntPtr SetCursor(IntPtr hCursor);

        protected override void WndProc(ref Message m)
        {
            if (m.Msg == WM_SETCURSOR)
            {
                // Set the cursor to use the system hand cursor
                SetCursor(LoadCursor(IntPtr.Zero, IDC_HAND));

                // Indicate that the message has been handled
                m.Result = IntPtr.Zero;
                return;
            }

            base.WndProc(ref m);
        }
    }

The ImprovedCursorRendering.png  shows the improved cursor. 
Approved
Last Updated: 12 Nov 2019 14:57 by ADMIN
To reproduce: Add a RadMultiColumnCombobox to the form, set the DropDownStyle property to DropDownList and clear the text. You will notice that the height of the control is not bigger than 5 px.

Workaround: set MinimumSize 

Me.RadMultiColumnComboBox1.MinimumSize = New Size(200, 23)

Declined
Last Updated: 12 Nov 2019 14:55 by ADMIN
Approved
Last Updated: 12 Nov 2019 14:54 by ADMIN

Please refer to the attached gif file. You will notice that for the GridViewMaskBoxColumn  with numeric mask the filtering doesn't work. For the other columns each key stroke filters the grid rows.

Workaround: either use a GridViewDecimalColumn or change the default editor for the GridViewMaskBoxColumn :


            this.radGridView1.EditorRequired += radGridView1_EditorRequired; 

        private void radGridView1_EditorRequired(object sender, EditorRequiredEventArgs e)
        {
            if (this.radGridView1.CurrentColumn.HeaderText == "MaskBoxColumn")
            {
                GridSpinEditor spinEditor = new GridSpinEditor();
                RadSpinEditorElement element = spinEditor.EditorElement as RadSpinEditorElement;
                element.ShowUpDownButtons = false;
                e.Editor = spinEditor;
            }
        }

 

 

Declined
Last Updated: 12 Nov 2019 14:52 by ADMIN

Using a custom control using the Telerik Presentation Framework, I am receiving a NullException inside the GridCheckBoxHeaderCellElement during the GridViewElement's data load.

The custom control construction follows an example I found somewhere (reference is lost to me at this point):

ControlContainingGridView inherits from RadControl

CreateChildItems creates and adds ControlContainingGridViewElement

 

ControlContainingGridViewElement inherits from RadElement

CreateChildItems creates and adds some layout controls AND a GridViewElement

 

public partial class ControlContainingGridView : RadControl {
        public ControlContainingGridView() {
            InitializeComponent();
            this.TextChanged += ControlContainingGridView_TextChanged;
        }

        private void ControlContainingGridView_TextChanged(object sender, EventArgs e) {
            controlContainingGridViewElement.Text = this.Text;
        }

        private ControlContainingGridViewElement controlContainingGridViewElement = null;


        protected override void CreateChildItems(RadElement parent) {
            controlContainingGridViewElement = new ControlContainingGridViewElement();
            this.RootElement.Children.Add(controlContainingGridViewElement);
            base.CreateChildItems(parent);
        }

        public object DataSource {
            get {
                return controlContainingGridViewElement.GridView.Template.DataSource;
            }
            set {
                try {
                    controlContainingGridViewElement.GridView.Template.DataSource = value;
                } catch (Exception ex) {
                    Debug.WriteLine(ex);
                }
            }
        }

        internal void SetupColumns(Action<MasterGridViewTemplate> setupColumns) {
            controlContainingGridViewElement.GridView.Template.AutoGenerateColumns = false;
            setupColumns(controlContainingGridViewElement.GridView.Template);
        }



    }

    public class ControlContainingGridViewElement : RadElement {

        private TextPrimitive textPrimitive = null;
        private RadButtonElement addButton = null;
        private RadButtonElement deleteButton = null;
        private RadGridViewElement gridViewElement = null;

        public RadGridViewElement GridView { get { return gridViewElement; } }

        public bool ShowAddButton { get { return addButton.Visibility == ElementVisibility.Visible; } set { addButton.Visibility = value ? ElementVisibility.Visible : ElementVisibility.Collapsed; } }
        public bool ShowDeleteButton { get { return deleteButton.Visibility == ElementVisibility.Visible; } set { deleteButton.Visibility = value ? ElementVisibility.Visible : ElementVisibility.Collapsed; } }

        public string Text { get { return textPrimitive.Text; } set { textPrimitive.Text = value; } }

        protected override void CreateChildElements() {
            DockLayoutPanel dlp = new DockLayoutPanel();
            dlp.StretchHorizontally = true;
            dlp.StretchHorizontally = true;
            dlp.LastChildFill = true;

            DockLayoutPanel dlpBar = new DockLayoutPanel();
            dlpBar.StretchHorizontally = true;
            DockLayoutPanel.SetDock(dlpBar, Dock.Top);


            var imagePrimitive = new ImagePrimitive();
            DockLayoutPanel.SetDock(imagePrimitive, Dock.Left);

            textPrimitive = new TextPrimitive();
            DockLayoutPanel.SetDock(textPrimitive, Dock.Left);

            var slp = new StackLayoutPanel();
            DockLayoutPanel.SetDock(slp, Dock.Right);

            var addButton = new RadButtonElement {
                Text = "Add",
                MaxSize = new Size() { Height = 20 }
            };
            var deleteButton = new RadButtonElement {
                Text = "Del",
                MaxSize = new Size() { Height = 20 }
            };

            slp.Children.Add(addButton);
            slp.Children.Add(deleteButton);


            dlpBar.Children.Add(slp);
            dlpBar.Children.Add(imagePrimitive);
            dlpBar.Children.Add(textPrimitive);



            gridViewElement = new RadGridViewElement {
                StretchHorizontally = true,
                StretchVertically = true
            };
            gridViewElement.Template.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
            gridViewElement.Template.AllowAddNewRow = false;
            gridViewElement.Template.AllowDeleteRow = false;
            gridViewElement.Template.AllowDragToGroup = false;
            gridViewElement.ShowGroupPanel = false;
            gridViewElement.ShowGroupPanelScrollbars = false;

            dlp.Children.Add(dlpBar);
            dlp.Children.Add(gridViewElement);



            this.Children.Add(dlp);
            base.CreateChildElements();
        }

    }

 

During Form load, I programmatically add columns and provide a binding source

 

private List<SampleModel> sampleModels = new List<SampleModel>();
        private BindingSource sampleModelsBinding = new BindingSource();

        private void RadForm1_Load(object sender, EventArgs e) {

            sampleModels.Add(new SampleModel() {
                When = DateTime.Parse("1980-04-23"),
                SomeText = "Purple Bananas",
                IsTrue = true
            });
            sampleModels.Add(new SampleModel() {
                When = DateTime.Parse("2002-07-20"),
                SomeText = "Ball & Chain",
                IsTrue = false
            });
            sampleModelsBinding.DataSource = sampleModels;

            controlContainingGridView.SetupColumns((grid) => {
                grid.AddDateTimeColumn(nameof(SampleModel.When), "When");
                grid.AddTextBoxColumn(nameof(SampleModel.SomeText), "Some Text");
                grid.AddCheckBoxColumn(nameof(SampleModel.IsTrue), "Is True");
            });

            controlContainingGridView.DataSource = sampleModelsBinding;

        }

 

Inclusion of the CheckBox column results in the following error:

Exception thrown: 'System.NullReferenceException' in Telerik.WinControls.GridView.dll

System.NullReferenceException: Object reference not set to an instance of an object.
   at Telerik.WinControls.UI.GridCheckBoxHeaderCellElement.Attach(GridViewColumn data, Object context)
   at Telerik.WinControls.UI.BaseVirtualizedContainer`1.InsertElement(Int32 position, IVirtualizedElement`1 element, T data)
   at Telerik.WinControls.UI.BaseVirtualizedContainer`1.UpdateElement(Int32 position, T data)
   at Telerik.WinControls.UI.BaseVirtualizedContainer`1.MeasureElements()
   at Telerik.WinControls.UI.BaseVirtualizedContainer`1.MeasureOverride(SizeF availableSize)
   at Telerik.WinControls.RadElement.MeasureCore(SizeF availableSize)
   at Telerik.WinControls.RadElement.Measure(SizeF availableSize)
   at Telerik.WinControls.UI.GridVirtualizedRowElement.MeasureElements(SizeF availableSize, SizeF clientSize, Padding borderThickness)
   at Telerik.WinControls.UI.LightVisualElement.MeasureOverride(SizeF availableSize)
   at Telerik.WinControls.UI.GridRowElement.MeasureOverride(SizeF availableSize)
   at Telerik.WinControls.RadElement.MeasureCore(SizeF availableSize)
   at Telerik.WinControls.RadElement.Measure(SizeF availableSize)
   at Telerik.WinControls.UI.VirtualizedStackContainer`1.MeasureElementCore(RadElement element, SizeF availableSize)
   at Telerik.WinControls.UI.ScrollableRowsContainerElement.MeasureElementCore(RadElement element, SizeF availableSize)
   at Telerik.WinControls.UI.VirtualizedStackContainer`1.MeasureElement(IVirtualizedElement`1 element)
   at Telerik.WinControls.UI.PinnedRowsContainerElement.MeasureElement(IVirtualizedElement`1 element)
   at Telerik.WinControls.UI.BaseVirtualizedContainer`1.MeasureElements()
   at Telerik.WinControls.UI.BaseVirtualizedContainer`1.MeasureOverride(SizeF availableSize)
   at Telerik.WinControls.UI.ScrollableRowsContainerElement.MeasureOverride(SizeF availableSize)
   at Telerik.WinControls.RadElement.MeasureCore(SizeF availableSize)
   at Telerik.WinControls.RadElement.Measure(SizeF availableSize)
   at Telerik.WinControls.UI.RowsContainerElement.MeasureOverride(SizeF availableSize)
   at Telerik.WinControls.RadElement.MeasureCore(SizeF availableSize)
   at Telerik.WinControls.RadElement.Measure(SizeF availableSize)
   at Telerik.WinControls.UI.ScrollViewElement`1.MeasureViewElement(SizeF availableSize)
   at Telerik.WinControls.UI.ScrollViewElement`1.MeasureView(SizeF availableSize)
   at Telerik.WinControls.UI.ScrollViewElement`1.MeasureOverride(SizeF availableSize)
   at Telerik.WinControls.UI.GridTableElement.MeasureOverride(SizeF availableSize)
   at Telerik.WinControls.RadElement.MeasureCore(SizeF availableSize)
   at Telerik.WinControls.RadElement.Measure(SizeF availableSize)
   at Telerik.WinControls.Layouts.DockLayoutPanel.MeasureOverride(SizeF constraint)
   at Telerik.WinControls.RadElement.MeasureCore(SizeF availableSize)
   at Telerik.WinControls.RadElement.Measure(SizeF availableSize)
   at Telerik.WinControls.Layouts.ContextLayoutManager.UpdateLayout()
   at Telerik.WinControls.UI.GridVisibilityHelper.EnsureRowVisible(GridViewRowInfo rowInfo)
   at Telerik.WinControls.UI.GridTableElement.EnsureRowVisible(GridViewRowInfo rowInfo)
   at Telerik.WinControls.UI.GridTableElement.EnsureCellVisible(GridViewRowInfo rowInfo, GridViewColumn column)
   at Telerik.WinControls.UI.GridTableElement.UpdateViewCore(Object sender, DataViewChangedEventArgs args)
   at Telerik.WinControls.UI.GridTableElement.UpdateView(Object sender, DataViewChangedEventArgs args)
   at Telerik.WinControls.UI.GridTableElement.ProcessTemplateEvent(GridViewEvent eventData)
   at Telerik.WinControls.UI.GridTableElement.Telerik.WinControls.UI.IGridViewEventListener.ProcessEvent(GridViewEvent eventData)
   at Telerik.WinControls.UI.GridViewEventProcessEntity.ProcessCollection(GridViewEvent gridEvent, PriorityWeakReferenceList list, GridEventProcessMode processMode)
   at Telerik.WinControls.UI.GridViewEventProcessEntity.ProcessEvent(GridViewEvent gridEvent)
   at Telerik.WinControls.UI.GridViewSynchronizationService.NotifyListeners(GridViewEvent gridEvent)
   at Telerik.WinControls.UI.GridViewSynchronizationService.FlushEvents()
   at Telerik.WinControls.UI.GridViewSynchronizationService.DispatchEvent(GridViewEvent gridEvent)
   at Telerik.WinControls.UI.GridViewSynchronizationService.RaiseCurrentChanged(GridViewTemplate template, GridViewRowInfo row, GridViewColumn column, Boolean user)
   at Telerik.WinControls.UI.GridViewTemplate.CollectionView_CurrentChanged(Object sender, EventArgs e)
   at System.EventHandler.Invoke(Object sender, EventArgs e)
   at Telerik.WinControls.Data.RadCollectionView`1.OnCurrentChanged(EventArgs args)
   at Telerik.WinControls.Data.RadCollectionView`1.SetCurrentPositionCore(Int32 newPosition, Boolean forceNotify, CurrentChangeReason reason)
   at Telerik.WinControls.Data.RadListSource`1.InitializeCurrentItem()
   at Telerik.WinControls.Data.RadListSource`1.Initialize()
   at Telerik.WinControls.Data.RadListSource`1.Bind(Object dataSource, String dataMember)
   at Telerik.WinControls.Data.RadListSource`1.set_DataSource(Object value)
   at Telerik.WinControls.UI.GridViewTemplate.set_DataSource(Object value)
   at BugReproduction.ControlContainingGridView.set_DataSource(Object value) in ...\BugReproduction\BugReproduction\ControlContainingGridView.cs:line 42

Completed
Last Updated: 11 Nov 2019 14:17 by ADMIN
Release R1 2020 (LIB 2019.3.1111)

Please refer to the attached sample project and follow the steps illustrated in the gif file.

Note: if the vertical  scrollbar is visible, the editor is activated as expected. 

Workaround:

Me.RadListView1.ItemSize = New Size(200, 30)

Completed
Last Updated: 11 Nov 2019 09:18 by ADMIN
Release R1 2020

RadMaskedEditBox - (2019.3.903.40) - Text property not respecting numeric mask formatting on Up, Down keys

To repeat the bug create the RadMaskedEditBox and set the next properties:

this.radMaskedEditBox1.Mask = "N0";
this.radMaskedEditBox1.MaskType = MaskType.Numeric;

Enter the 111 in the editor. With the up/down keys set all of the values to 0.

Expected value is 0, got 000.

Approved
Last Updated: 11 Nov 2019 08:13 by ADMIN

I can not add any type of control to the layoutControlGroupItem.  I have a screen recording of me trying to follow the procedure shown but it is 60M so I can't attach it.  I shared the file on my OneDrive if you would like to access it that way.

 

https://ryancentral-my.sharepoint.com/:v:/p/jeff_burke/EV_FvUkDAUtLlWgYelxCxeoB52z_0522xoFurCSQNa-dbw?e=s2WOe5

 

 

Completed
Last Updated: 07 Nov 2019 14:24 by ADMIN
Release R1 2020 (LIB 2019.3.1111)

To reproduce: 

private void radButton1_Click(object sender, EventArgs e)
{
    RadOpenFileDialog fd = new RadOpenFileDialog();
    fd.ShowHiddenFiles = true;
    fd.ShowDialog();
}

Completed
Last Updated: 07 Nov 2019 14:22 by ADMIN
Release R1 2020 (LIB 2019.3.1111)
Completed
Last Updated: 07 Nov 2019 14:19 by ADMIN
Release R1 2020 (LIB 2019.3.1111)

The tab order in the dialog is incorrect, the dialog is not focused when shown.

Workaround: 

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        radRichTextEditor1.RichTextBoxElement.FindReplaceDialog = new MyFindReplaceDialog();

    }
}
class MyFindReplaceDialog : FindReplaceDialog
{
    public MyFindReplaceDialog()
    {
        this.Controls[0].TabIndex = 2; // FindNext button
        this.Controls[1].TabIndex = 3; // Replace Button
        this.Controls[2].TabIndex = 5; // CloseButton
        this.Controls[3].TabIndex = 4; // Replace All button
        //this.Controls[4].TabIndex = 5; // label
        //this.Controls[5].TabIndex = 5; // label
        this.Controls[6].TabIndex = 1; // RepalceWith textbox
        this.Controls[7].TabIndex = 0; // TextToFind  textbox
         

    }
    protected override void OnShown(EventArgs e)
    {
        base.OnShown(e);
        this.Controls[7].Focus();
    }
}

Completed
Last Updated: 07 Nov 2019 14:16 by ADMIN
Release R1 2020 (LIB 2019.3.1111)
To reproduce:
- Open the attached project.
- Type a text so there are no results in the drop down.
- Press Enter.
- Click the arrow button.

Workaround: 
private void RadMultiColumnComboBox1_DropDownOpened1(object sender, EventArgs e)
{
    if (radMultiColumnComboBox1.Text == "")
    {
        radMultiColumnComboBox1.EditorControl.FilterDescriptors.Clear();
        CompositeFilterDescriptor compositeFilter = new CompositeFilterDescriptor();
        compositeFilter.FilterDescriptors.Add(new FilterDescriptor("Drug", FilterOperator.StartsWith, ""));
        compositeFilter.FilterDescriptors.Add(new FilterDescriptor("Name", FilterOperator.StartsWith, ""));
        compositeFilter.LogicalOperator = FilterLogicalOperator.Or;
        radMultiColumnComboBox1.EditorControl.FilterDescriptors.Add(compositeFilter);
    }
}
Completed
Last Updated: 07 Nov 2019 14:12 by ADMIN
Release R1 2020 (LIB 2019.3.1111)
Created by: Dimitar
Comments: 0
Category: ChartView
Type: Bug Report
0

Use attached to reproduce. 

- Click at least 7 times.

 

Workaround: Crete new series instance each time.

Completed
Last Updated: 07 Nov 2019 14:11 by ADMIN
Release R1 2020 (LIB 2019.3.1111)

If you apply one theme to the entire application and want to apply another theme for RadDock as it is demonstrated in this help article, the ThemeName property of RadDock is not respected:

             

        public RadForm1()
        {
            InitializeComponent();

            radDock1.ElementTree.EnableApplicationThemeName = false;
            radDock1.ThemeName = "FluentDark"; 
            ThemeResolutionService.ApplicationThemeName = "Windows7"; 
        }

 

Completed
Last Updated: 07 Nov 2019 14:09 by ADMIN
Release R1 2020 (LIB 2019.3.1111)

Please run the attached sample project with the latest version. You will notice that the maximized floating window is not loaded properly. This used to work in versions prior to R1 2019.

Workaround: remove "WindowState=Maximized" from the XML.

1 2 3 4 5 6