New
Last Updated: 19 Nov 2018 14:13 by ADMIN
When the document is protected, CommandExecuting is not raised when the user double clicks the header or footer area.
Under Review
Last Updated: 19 Nov 2018 12:47 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Sr.
Comments: 0
Category: UI for WinForms
Type: Bug Report
2
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: 19 Nov 2018 12:39 by ADMIN
ADMIN
Created by: Dimitar
Comments: 0
Category: GridView
Type: Bug Report
1
To reproduce:
- Add a checkbox column and hide some of the cells.
- Change some values and then click on empty cell.
- Exception occurs in OnMouseDownLeft method (GridRowBeahvior class)

Workaround:

Hide the checkbox only.
Approved
Last Updated: 19 Nov 2018 12:34 by Scott
To reproduce: please refer to the attached sample project and follow the steps from the attached gif file.

1. Run the project and type "hana" in the second filter cell. You will notice that after a few seconds the input is handled and the grid is filtered.

Workaround: use RadVirtualGrid instead. 
https://docs.telerik.com/devtools/winforms/virtualgrid/overview
https://docs.telerik.com/devtools/winforms/virtualgrid/filtering/filtering

Second workaround: https://docs.telerik.com/devtools/winforms/gridview/filtering/how-to/filter-on-enter
New
Last Updated: 19 Nov 2018 12:32 by ADMIN
It would be useful if the control takes advantage of the RadSpreadProcessing, RadPdfProcessing and RadWordsProcessing. This will allow developers to easily export the control's contents to the desired format. 
New
Last Updated: 19 Nov 2018 12:24 by ADMIN
To reproduce:
- Use relative sizing and save the RelativeRatio.
- Set the same value after restarting the application.
- The panel size is not the same. 

Workaround:
Use absolute size. 
Completed
Last Updated: 19 Nov 2018 10:26 by ADMIN
ADMIN
Created by: Hristo
Comments: 1
Category: SplitContainer
Type: Feature Request
1
The end user should be able to specify what Cursor to be used while resizing a panel.

Currently this can be achieved using the custom control below:
public class MyRadSplitContainer : RadSplitContainer
{
    private bool isResizing;
 
    public override string ThemeClassName
    {
        get
        {
            return typeof(RadSplitContainer).FullName;
        }
    }
 
    protected override void OnMouseDown(MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left && this.ContentRectangle.Contains(e.Location))
        {
            SplitterElement splitter = GetSplitterElementAtPoint(e.Location);
            if (splitter != null && !splitter.Fixed)
            {
                this.isResizing = true;
            }
 
            base.OnMouseDown(e);
        }
    }
 
    protected override void OnMouseUp(MouseEventArgs e)
    {
        base.OnMouseUp(e);
 
        this.isResizing = false;
    }
 
    public override Cursor Cursor
    {
        get
        {
            Cursor cursor = base.Cursor;
            if (this.isResizing && cursor == Cursors.SizeWE)
            {
                cursor = Cursors.VSplit;
            }
            else if (this.isResizing && cursor == Cursors.SizeNS)
            {
                cursor = Cursors.HSplit;
            }
 
            return cursor;
        }
        set
        {
            if (value == Cursors.VSplit)
            {
                value = Cursors.SizeWE;
            }
            else if (value == Cursors.HSplit)
            {
                value = Cursors.SizeNS;
            }
 
            base.Cursor = value;
        }
    }
}
Approved
Last Updated: 15 Nov 2018 11:37 by ADMIN
To reproduce:
private void RadTreeView1_NodeCheckedChanging(object sender, Telerik.WinControls.UI.RadTreeViewCancelEventArgs e)
{
    Console.WriteLine(e.Action);
}

The action is always unknown.
New
Last Updated: 13 Nov 2018 13:40 by ADMIN
To reproduce: add a RadTreeView and a RadBreadCrumb and apply the MaterialTeal theme. Refer to the attached screenshot illustrating the wrong font of the selected item.

Workaround:

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

            ThemeResolutionService.ApplicationThemeName = "MaterialTeal";

            this.radTreeView1.NodeFormatting += radTreeView1_NodeFormatting;
            this.radTreeView1.SelectedNodeChanged += radTreeView1_SelectedNodeChanged; 
        }
 
        private void UpdateFont()
        {
            foreach (RadSplitButtonElement item in this.radBreadCrumb1.BreadCrumbElement.Items)
            {
                foreach (RadMenuItem menuItem in item.Items)
                {
                    if (this.radTreeView1.SelectedNode != null && menuItem.Text == this.radTreeView1.SelectedNode.Text)
                    {
                        menuItem.Font = new Font(f.FontFamily,f.Size, FontStyle.Bold);
                    }
                }
            }
        }
        
        private void radTreeView1_SelectedNodeChanged(object sender, Telerik.WinControls.UI.RadTreeViewEventArgs e)
        {
            UpdateFont();
        }

        Font f = null;

        private void radTreeView1_NodeFormatting(object sender, Telerik.WinControls.UI.TreeNodeFormattingEventArgs e)
        {
            f = e.NodeElement.ContentElement.Font;
        }
Approved
Last Updated: 09 Nov 2018 09:18 by ADMIN
ADMIN
Created by: Hristo
Comments: 0
Category: UI for WinForms
Type: Feature Request
0
Implement functionality to rotate the text in a cell.
Approved
Last Updated: 08 Nov 2018 13:53 by ADMIN
Completed
Last Updated: 07 Nov 2018 14:13 by ADMIN
Note: similar to the axis, the series should also have ClipLabels property which will control whether the labels will be clipped or not.

How to reproduce: zoom and pan along the chart
public Form1()
{
    InitializeComponent();

    this.radChartView1.CreateRenderer += radChartView1_CreateRenderer;
    this.radChartView1.ShowPanZoom = true;

    BarSeries barSeries = new BarSeries();
    Random rand = new Random();
    for (int i = 1; i < 10; i++)
    {
        barSeries.DataPoints.Add(new CategoricalDataPoint(rand.Next(100), i));
    }

    barSeries.ShowLabels = true;
    this.radChartView1.Series.Add(barSeries);
}

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

         this.radChartView1.CreateRenderer += radChartView1_CreateRenderer;
         this.radChartView1.ShowPanZoom = true;

         BarSeries barSeries = new BarSeries();
         Random rand = new Random();
         for (int i = 1; i < 10; i++)
         {
             barSeries.DataPoints.Add(new CategoricalDataPoint(rand.Next(100), i));
         }

         barSeries.ShowLabels = true;
         this.radChartView1.Series.Add(barSeries);
     }

     private void radChartView1_CreateRenderer(object sender, ChartViewCreateRendererEventArgs e)
     {
         e.Renderer = new CustomCartesianRenderer(e.Area as CartesianArea);
     }
 }

 public class CustomCartesianRenderer : CartesianRenderer
 {
     public CustomCartesianRenderer(CartesianArea area)
         : base(area)
     { }
     protected override void Initialize()
     {
         base.Initialize();

         for (int i = 0; i < this.DrawParts.Count; i++)
         {
             BarLabelElementDrawPart labelPart = this.DrawParts[i] as BarLabelElementDrawPart;
             if (labelPart != null)
             {
                 this.DrawParts[i] = new CustomLabelElementDrawPart((BarSeries)labelPart.Element, this);
             }
         }
     }
 }

 public class CustomLabelElementDrawPart : BarLabelElementDrawPart
 {
     public CustomLabelElementDrawPart(ChartSeries owner, IChartRenderer renderer)
         : base(owner, renderer)
     { }
     
     public override void Draw()
     {
         Graphics graphics = this.Renderer.Surface as Graphics;
         CartesianSeries cartesianSeries = this.Element as CartesianSeries;
         if (cartesianSeries != null)
         {
             CartesianArea area = (CartesianArea)cartesianSeries.GetType().GetField("area", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(cartesianSeries);
             RectangleF clipRect = (RectangleF)area.GetType().GetMethod("GetCartesianClipRect", BindingFlags.Instance | BindingFlags.NonPublic).Invoke(area, new object[] { });//.GetCartesianClipRect();
             graphics.SetClip(clipRect);
         }

         base.Draw();

         graphics.ResetClip();
     }
 }
Completed
Last Updated: 07 Nov 2018 13:56 by Dimitar
Workaround:

        private void radGridView1_ConditionalFormattingFormShown(object sender, EventArgs e)
        {
            ConditionalFormattingForm f = sender as ConditionalFormattingForm;
            if (f != null)
            {
                RadPropertyGrid radPropertyGridProperties = f.Controls["radPropertyGridProperties"] as RadPropertyGrid; 
                radPropertyGridProperties.ItemFormatting += radPropertyGridProperties_ItemFormatting;
                  radPropertyGridProperties.ItemFormatting += radPropertyGridProperties_ItemFormatting;
            }
        }

        private void radPropertyGridProperties_ItemFormatting(object sender, PropertyGridItemFormattingEventArgs e)
        {
            if (e.Item.Label=="CellFont")
            {
                e.Item.Label = "aaa";
            }
        }
New
Last Updated: 07 Nov 2018 08:49 by ADMIN
Workaround:

        private void radGridView1_ConditionalFormattingFormShown(object sender, EventArgs e)
        {
            ConditionalFormattingForm f = sender as ConditionalFormattingForm;
            if (f != null)
            {
                f.Width += 5;
            }
        }
Completed
Last Updated: 06 Nov 2018 15:11 by Dimitar
 How to reproduce
1. Drag a RadTrackBar from the toolbox
2. Set the Maximum property, e.g. to 100, set the Minimum property, e.g. to 50
3. Close and reopen the designer, you will notice that the Minimum property of the control is not the expected value of 50, although it has been properly serialized in the designer file.

Workaround: 
set the Minimum property in the Load event of the form
Approved
Last Updated: 06 Nov 2018 14:45 by Eric Moreau
ADMIN
Created by: Nikolay
Comments: 18
Category: ChartView
Type: Feature Request
14
3D Charts will be a nice addition to the WinForms suite
Declined
Last Updated: 06 Nov 2018 12:29 by ADMIN
To reproduce: please refer to the attached sample project and try to reorder a node. You will notice that the message box is not rendered properly.

        //case 2
        private void DragDropService_PreviewDragDrop(object sender, RadDropEventArgs e)
        {
             e.Handled = true;
            RadMessageBox.Show(this, "Showing a messagebox under dragending doesn't work correctly.");
        }

        //case 1
        private void radTreeView1_DragEnding(object sender, Telerik.WinControls.UI.RadTreeViewDragCancelEventArgs e)
        {
            //e.Cancel = true;
            //RadMessageBox.Show(this, "Showing a messagebox under dragending doesn't work correctly.");
        }

Workaround: subscribe to the TreeViewElement.DragDropService.PreviewDragDrop and set the Handled argument to true if you want to cancel the drop operation. Then, handle the TreeViewElement.DragDropService.Stopped event and show the desired message.

        public Form1()
        {
            InitializeComponent();
            
            this.radTreeView1.TreeViewElement.DragDropService.PreviewDragDrop += DragDropService_PreviewDragDrop;
            this.radTreeView1.TreeViewElement.DragDropService.Stopped+=DragDropService_Stopped;
        }

        private void DragDropService_Stopped(object sender, EventArgs e)
        {
            
            RadMessageBox.Show(this, "Showing a messagebox under dragending doesn't work correctly.");
        }
 
        private void DragDropService_PreviewDragDrop(object sender, RadDropEventArgs e)
        {
            e.Handled = true;
        }
Approved
Last Updated: 06 Nov 2018 10:51 by ADMIN
To reproduce: run the attached sample project. Click the Close button and then the Show button. You will notice that the list view is no longer available. 

Workaround: instead of using MDI, set the hostWindow.DockState = DockState.TabbedDocument; before showing the form.
Under Review
Last Updated: 06 Nov 2018 10:02 by Sumayya
Created by: Sumayya
Comments: 0
Category: UI Framework
Type: Feature Request
0