Approved
Last Updated: 22 Feb 2019 12:25 by ADMIN
Use attached to reproduce. 
Approved
Last Updated: 21 Feb 2019 13:42 by ADMIN
One should not be able to use the ribbon bar buttons when a protected document is opened or the rich text editor is read-only. 
Approved
Last Updated: 21 Feb 2019 11:18 by ADMIN

If i have lots of group, the horizontal axis gets full with the square 4x4 groups, but the vertacal axis has lots of empty space.
I could break the squareness of the groups to make them longer in the vertical axis, but that seems a bit ugly.

However, I cannot seem to find a way to put a group under another group, therefore utilising both the X and Y dimensions well.

Can it be done?



i.e.

--Group 1--   --Group2--

Tile     Tile     Tile     Tile

Tile     Tile     Tile     Tile



--Group 3--

Tile      Tile

Tile      Tile

 

Before (How it is now):

Before

  After (How I'm proposing it can be):

After

Approved
Last Updated: 21 Feb 2019 08:27 by ADMIN
To reproduce:
- Filter a self-referencing grouped grid. 

Workaround:
private void _rgvFreeCodeValues_FilterChanged(object sender, GridViewCollectionChangedEventArgs e)
{
    foreach (var row in RgvFreeCodeValues.Rows)
        row.IsExpanded = false;
}

private void _rgvFreeCodeValues_FilterChanging(object sender, GridViewCollectionChangingEventArgs e)
{
    foreach (var row in RgvFreeCodeValues.Rows)
        row.IsExpanded = true;
}
Completed
Last Updated: 21 Feb 2019 08:19 by ADMIN
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
Completed
Last Updated: 21 Feb 2019 05:42 by ADMIN
This was working this way in 2017 then we changer it so all rows are affected. 

Bot modes should be supported. 

Approved
Last Updated: 20 Feb 2019 12:43 by ADMIN
Caret jumps several symbols to the right when arabic or persian is used and user deletes the dot symbol. As a result the wrong symbol is deleted.
Approved
Last Updated: 20 Feb 2019 11:38 by ADMIN
When a PDF document contains images compressed with CCITTFaxDecode with applied BlackIs1 parameter, black color is visualized as white and white as black.
Approved
Last Updated: 20 Feb 2019 11:14 by ADMIN
Other themes are also missing the IsSelected state, the fix should also handle them.
Completed
Last Updated: 19 Feb 2019 15:58 by ADMIN
Created by: Frank
Comments: 2
Category: UI for WinForms
Type: Feature Request
3
I need to tab though the form fields in RadPdfViewer instead of having to click in each one
Approved
Last Updated: 19 Feb 2019 14:19 by ADMIN

To reproduce:

Open a large document and start scrolling fast. 

The pages a blank when scrolling and are rendered after scrolling stops.

Completed
Last Updated: 19 Feb 2019 14:12 by ADMIN

To reproduce: 

-Open the FileExplorer example. 

- Resize the panel (see attached).

Completed
Last Updated: 19 Feb 2019 14:07 by ADMIN
This will handle the scenario of having different image sets for different DPI.
Approved
Last Updated: 19 Feb 2019 13:08 by ADMIN
Changing the DataSource or scrolling are slow.

Create a grid with more than 20 columns and add 5K rows for example. Maximize the form and try to scroll with mouse wheel. You will notice that the scrolling performance is worse compared to the normal state of the form with less visible visual elements.

Workaround: this.radGridView1.EnableFastScrolling = true; and use the scrollbar's thumb

Second workaround: use paging:  https://docs.telerik.com/devtools/winforms/gridview/paging/overview Thus, you will display as many rows as possible to display on the screen per page. Instead of scrolling, you will navigate through pages.
Completed
Last Updated: 15 Feb 2019 17:02 by ADMIN

Hello,

We have developed an ASP.NET application and a WinForms application that both uses Telerik RadScheduler. The applications share the same data.

We have set EnableExactTimeRendering = true to prevent appointments to falsely be displayed as collisions.

Our problem is that appointments with short durations (0-4 minutes) are totally invisible in the WinForms Scheduler. In the ASP.NET scheduler all appointments are visible. An appointment with no duration (0 minutes) is shown as 30min appointment in ASP.NET while 1-minute appointments are shown as a thin line which is ok as we use tooltips for all appointments.

How can we make all appointments visible in WinForms and still use EnableExactTimeRendering? Of course, the rendering will not be exact for small durations but that is better than not showing the appointments at all. We would like to set a minimum size for appointments.

Best regards,
Daniel Gidlöf

 

Completed
Last Updated: 15 Feb 2019 16:50 by ADMIN
Completed
Last Updated: 15 Feb 2019 16:46 by ADMIN

AutoCompleteSuggestHelper, Assembly: Telerik.WinControls.UI, Version=2019.1.117.40

 

Isnt the hilighted line (contains branch) very unoptimized.

https://rhale78.wordpress.com/2011/05/16/string-equality-and-performance-in-c/

Multiple ToLower string operation. Why not let the framework do the operation since you are always using ordinal?

optimized version: return item.Text.Contains(this.Filter, StringComparison.OrdinalIgnoreCase);


 

protected virtual bool DefaultFilter(RadListDataItem item)
    {
      switch (this.suggestMode)
      {
        case SuggestMode.StartWiths:
          return item.Text.StartsWith(this.Filter, this.StringComparison);
        case SuggestMode.Contains:
          if ((this.StringComparison & StringComparison.InvariantCultureIgnoreCase) == StringComparison.InvariantCultureIgnoreCase || (this.StringComparison & StringComparison.InvariantCultureIgnoreCase) == StringComparison.CurrentCultureIgnoreCase)
            return item.Text.ToLower().Contains(this.Filter.ToLower());
          return item.Text.Contains(this.Filter);
        default:
          return item.Text.StartsWith(this.Filter, this.StringComparison);
      }
    }

 

Completed
Last Updated: 15 Feb 2019 16:41 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Sr.
Comments: 3
Category: MultiColumnCombo
Type: Bug Report
5
To reproduce:

Repository commonRepository = new Repository();

public Form1()
{
    InitializeComponent();

    InitializeDropDown();

    this.radMultiColumnComboBox1.DropDownMinSize = new Size(1100, 400);
    this.radMultiColumnComboBox1.EditorControl.ViewCellFormatting += EditorControl_ViewCellFormatting;
}

private void EditorControl_ViewCellFormatting(object sender, CellFormattingEventArgs e)
{
    if (e.Row is GridViewDataRowInfo && e.CellElement is GridRowHeaderCellElement)
    {
        e.CellElement.Text = e.RowIndex.ToString();
    }
}

public class Instrument
{ 
    public string Isin { get; set; }

    public string Description { get; set; }
    
    public string AlphaCode { get; set; }
    
    public string MicMarketplaceCode { get; set; }
    
    public string WorpMarketPlaceDescription { get; set; }
     
    public string InstrumentType { get; set; }
   
    public string DerivateIsin { get; set; }
    
    public int Order { get; set; }
}

public class Repository
{
    public BindingList<Instrument> GetInstruments()
    {
        Random rand = new Random();
        BindingList<Instrument> list = new BindingList<Instrument>();
        for (int i = 0; i < 80000; i++)
        {
            list.Add(new Instrument()
            {
                Isin = Guid.NewGuid().ToString(),
                Description = "Description" + i,
                AlphaCode = "Code" + i,
                MicMarketplaceCode = "MicCode" + i,
                WorpMarketPlaceDescription = "MPdescription" + i,
                InstrumentType = "Type" + i % 3,
                DerivateIsin = Guid.NewGuid().ToString(),
                Order = rand.Next(1, 100)
            });
        }
        return list;
    }
}

public void InitializeDropDown()
{
    var ui = TaskScheduler.FromCurrentSynchronizationContext();

    Task.Factory.StartNew(() =>
    {
        var result = commonRepository.GetInstruments();
        return result;
    }).ContinueWith(res =>
    {
        if (res.IsCompleted)
        {
            this.radMultiColumnComboBox1.DisplayMember = "Description";
            this.radMultiColumnComboBox1.ValueMember = "Isin";
            this.radMultiColumnComboBox1.AutoFilter = true;

            this.radMultiColumnComboBox1.DataSource = res.Result;

            CompositeFilterDescriptor compositeFilter = new CompositeFilterDescriptor();

            FilterDescriptor code = new FilterDescriptor("Isin", FilterOperator.Contains, "");
            FilterDescriptor description = new FilterDescriptor("Description", FilterOperator.Contains, "");
            FilterDescriptor alphaCode = new FilterDescriptor("AlphaCode", FilterOperator.Contains, "");
            FilterDescriptor micMarketplaceCode = new FilterDescriptor("MicMarketplaceCode", FilterOperator.Contains, "");
            FilterDescriptor worpMarketPlaceDescription = new FilterDescriptor("WorpMarketPlaceDescription", FilterOperator.Contains, "");
            FilterDescriptor instrumentType = new FilterDescriptor("InstrumentType", FilterOperator.Contains, "");
            FilterDescriptor derivateIsin = new FilterDescriptor("DerivateIsin", FilterOperator.Contains, "");

            compositeFilter.FilterDescriptors.Add(code);
            compositeFilter.FilterDescriptors.Add(description);
            compositeFilter.FilterDescriptors.Add(alphaCode);
            compositeFilter.FilterDescriptors.Add(micMarketplaceCode);
            compositeFilter.FilterDescriptors.Add(worpMarketPlaceDescription);
            compositeFilter.FilterDescriptors.Add(instrumentType);
            compositeFilter.FilterDescriptors.Add(derivateIsin);

            compositeFilter.LogicalOperator = FilterLogicalOperator.Or;

            this.radMultiColumnComboBox1.EditorControl.FilterDescriptors.Add(compositeFilter);

            this.radMultiColumnComboBox1.EditorControl.BestFitColumns();

            for (int i = 0; i < this.radMultiColumnComboBox1.EditorControl.Columns.Count; i++)
            {
                var column = this.radMultiColumnComboBox1.EditorControl.Columns[i];

                switch (column.Name)
                {
                    case "Isin":
                        column.HeaderText = "Header Isin";
                        column.Width = 120;
                        break;
                    case "Description":
                        column.HeaderText = "Header Description";
                        break;
                    case "AlphaCode":
                        column.HeaderText = "Header AlphaCode";
                        break;
                    case "MicMarketplaceCode":
                        column.HeaderText = "Header MicMarketplaceCode";
                        break;
                    case "WorpMarketPlaceDescription":
                        column.HeaderText = "Header WorpMarketPlaceDescription";
                        break;
                    case "InstrumentType":
                        column.HeaderText = "Header InstrumentType";
                        break;
                    case "DerivateIsin":
                        column.HeaderText = "Header DerivateIsin";
                        break;
                    case "Order":
                        column.IsVisible = false;
                        break;
                }
            }

            this.radMultiColumnComboBox1.SelectedItem = null;

            this.radMultiColumnComboBox1.Text = "Instrument";
            this.radMultiColumnComboBox1.ForeColor = Color.Gray;

            this.radMultiColumnComboBox1.MultiColumnComboBoxElement.DropDownWidth = 550;
        }
        else
        {
            RadMessageBox.Show(res.Exception.Message);
        }
    }, ui);
}

Workaround: use custom filtering instead of CompositeFilterDescriptor:

FilterDescriptor filter = new FilterDescriptor();
filter.PropertyName = this.radMultiColumnComboBox1.DisplayMember;
filter.Operator = FilterOperator.Contains;
this.radMultiColumnComboBox1.EditorControl.MasterTemplate.FilterDescriptors.Add(filter);
this.radMultiColumnComboBox1.EditorControl.EnableCustomFiltering = true;
this.radMultiColumnComboBox1.EditorControl.CustomFiltering += EditorControl_CustomFiltering;

 private void EditorControl_CustomFiltering(object sender, GridViewCustomFilteringEventArgs e)
 {
     string searchText = this.radMultiColumnComboBox1.MultiColumnComboBoxElement.EditorElement.Text;
     if (searchText != string.Empty)
     {
         Instrument instrument = e.Row.DataBoundItem as Instrument;

         e.Handled = true;
         e.Visible = instrument.Isin.Contains(searchText) || instrument.Description.Contains(searchText) || instrument.AlphaCode.Contains(searchText) ||
                     instrument.MicMarketplaceCode.Contains(searchText) || instrument.WorpMarketPlaceDescription.Contains(searchText) ||
                     instrument.InstrumentType.Contains(searchText) || instrument.DerivateIsin.Contains(searchText);
     }
 }
Approved
Last Updated: 15 Feb 2019 09:11 by ADMIN
Created by: Michael Yereniuk
Comments: 0
Category: UI for WinForms
Type: Bug Report
1

To reproduce:

-double click an option in the MultiColumnCombobox editor and close the editor in the selected index changed event.

Completed
Last Updated: 14 Feb 2019 18:28 by Al

To reproduce:

Add a RadBindingNavigator to a form and change its name.

Bind it to something.

Workaround:

Leave the default name.

1 2 3 4 5 6