Need More Info
Last Updated: 06 Feb 2023 14:00 by Martin
Created by: Martin
Comments: 5
Category: VirtualGrid
Type: Bug Report
1

Repro-steps:

  1. Use the code beneath.
  2. Run this form.
  3. 20 records are shown, the "AddNewRow" is shown.
  4. Select all records.
  5. Press <delete>
  6. 0 records are shown (as expected), the "AddNewRow" is invisible (unexpected).
  7. Close the program.
  8. Modify LoadTable(true) to LoadTable(false). Records will not be created..
  9. Run this form.
  10. 0 records are shown (as expected), the "AddNewRow" is invisible (unexpected).

Expected behavior:

  • Even when the dataTable or view has no rows, we should still be able to add new rows.

Observed behavior:

  • When datatable/view is empty, no new records are allowed to enter.

Please observe that Grid.UserAddedRow is not handled, but since we cannot even see the AddNewRow, it is not required for this bug.


	public partial class TestForm: Form
	{
		private readonly DataView _view;

		public TestForm()
		{
			InitializeComponent();

			_view = new DataView(LoadTable(true));
			_grid.ColumnCount = _view.Table.Columns.Count;
			_grid.RowCount = _view.Count;
			_grid.AllowAddNewRow = true;
			_grid.SelectionMode = VirtualGridSelectionMode.FullRowSelect;
		}

		static private DataTable LoadTable(bool fill)
		{
			var table = new DataTable();
			table.Columns.Add("Number", typeof(int));
			
			if (fill)
				for(int i = 0; i < 20; i++)
					table.Rows.Add(i);
			
			return table;
		}


		#region Windows Form Designer generated code

		/// <summary>
		/// Required method for Designer support - do not modify
		/// the contents of this method with the code editor.
		/// </summary>
		private void InitializeComponent()
		{
			this._grid = new Telerik.WinControls.UI.RadVirtualGrid();
			((System.ComponentModel.ISupportInitialize)(this._grid)).BeginInit();
			this.SuspendLayout();
			// 
			// _grid
			// 
			this._grid.Dock = System.Windows.Forms.DockStyle.Fill;
			this._grid.Location = new System.Drawing.Point(0, 0);
			this._grid.MultiSelect = true;
			this._grid.Name = "_grid";
			this._grid.SelectionMode = Telerik.WinControls.UI.VirtualGridSelectionMode.FullRowSelect;
			this._grid.Size = new System.Drawing.Size(800, 450);
			this._grid.TabIndex = 0;
			this._grid.CellValueNeeded += new Telerik.WinControls.UI.VirtualGridCellValueNeededEventHandler(this._grid_CellValueNeeded);
			this._grid.UserDeletedRow += new Telerik.WinControls.UI.VirtualGridRowsEventHandler(this._grid_UserDeletedRow);
			// 
			// TestForm
			// 
			this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
			this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
			this.ClientSize = new System.Drawing.Size(800, 450);
			this.Controls.Add(this._grid);
			this.Name = "TestForm";
			this.Text = "TestForm";
			((System.ComponentModel.ISupportInitialize)(this._grid)).EndInit();
			this.ResumeLayout(false);

		}

		#endregion

		private Telerik.WinControls.UI.RadVirtualGrid _grid;

		private void _grid_CellValueNeeded(object sender, Telerik.WinControls.UI.VirtualGridCellValueNeededEventArgs e)
		{
			if (e.ColumnIndex < 0)
				return;

			if (e.RowIndex < 0)
			{
				e.FieldName = _view.Table.Columns[e.ColumnIndex].ColumnName;
				if (e.RowIndex == RadVirtualGrid.HeaderRowIndex)
					e.Value = e.FieldName;
			}
			else if (e.RowIndex < _view.Count)
			{
				e.Value = _view[e.RowIndex][e.ColumnIndex];
			}
		}

		private void _grid_UserDeletedRow(object sender, Telerik.WinControls.UI.VirtualGridRowsEventArgs e)
		{
			var rowIndexes = e.RowIndices.Distinct().OrderByDescending(i => i).ToList(); // Off topic: I have seen duplicate row indexes in this row collection. And unsorted. Is that by design?
			if (rowIndexes.Count == _view.Count)
			{
				_view.Table.Rows.Clear();
			}
			else
			{
				foreach(var index in rowIndexes)
					_view[index].Delete();
			}

			_grid.RowCount = _view.Count;
		}
	}

In Development
Last Updated: 06 Feb 2023 09:53 by ADMIN
Scheduled for R1 2023 SP1

Hi,

I am using CalHelper to convert recurrence rule to and from string.

It looks like when I convert rule to string and then parse it back to recurrence, some of the properties get dropped.

Please see below from my VS editor highlighting this:

 

Am I doing something wrong, or is this a bug?

 

Thanks

Anu

In Development
Last Updated: 03 Feb 2023 15:42 by ADMIN
Scheduled for R1 2023 SP1
Move and Size items from ContextMenu are not working. 
In Development
Last Updated: 03 Feb 2023 09:08 by ADMIN
Scheduled for R1 2023 SP1

An exception occurs when trying to export the RadGridView using the ExportToPDF class with the following message.

System.SystemException: 'System.MethodAccessException: Attempt by security transparent method 'Telerik.Pdf.Gdi.GdiFontEnumerator.get_FamilyNames()' to call native code through method 'Telerik.WinControls.NativeMethods.EnumFontFamiliesEx(IntPtr, LOGFONT, FontEnumDelegate, Int32, Int32)' failed.  Methods must be security critical or security safe-critical to call native code.
   at Telerik.Pdf.Gdi.GdiFontEnumerator.get_FamilyNames()
   at Telerik.Apoc.Pdf.FontSetup.AddSystemFonts(FontType fontType)
   at Telerik.Apoc.Render.Pdf.PdfRenderer.SetupFontInfo(FontInfo fontInfo)
   at Telerik.Apoc.Fo.FOTreeBuilder.Parse(XmlReader reader)'

This exception is observed only when the referenced DLLs target the .Net Framework 4.8 version.

Declined
Last Updated: 02 Feb 2023 11:19 by ADMIN

When exporting a RadFixedDocument, which contains a signature added with PdfProcessing a NotSupportedException is thrown: 'Stream does not support reading.'

Resolution: When exporting a digitally signed document a stream that allows both reading and writing should be passed to the PdfFormatProvider.

Example:

Stream outputStream = new FileStream("path", FileMode.OpenOrCreate, FileAccess.ReadWrite)

Completed
Last Updated: 02 Feb 2023 09:36 by ADMIN
Release R1 2023
Created by: Curtis
Comments: 4
Category: RibbonForm
Type: Bug Report
0

Steps to reproduce:

Create new Telerik Windows Forms Application ( I use VB.net but this crashes in C# as well )

Create RadRibbonForm - set the Project so this is the Startup Form.

Add Office2013LightTheme to form.

Set RadRibbonBar1.ThemeName to Office2013LightTheme.

Set ApplicationMenuStyle property = BackstageView

 

Run the ap, click on the Backstage tab and you'll see the first Image attached (called First.png)

 

Close the ap and back to Visual Studio - with the Form open in the Designer.

 

Everything is set but now i want to change the Background color of that lovely blue panel and everything inside it to a new background color.

I'd like to do this without creating a new Theme.

 

Click on the little triangle thingie in the upper right corner and select "Edit UI Elements"

Look down the Tree until you see BackstageItemsPanelElement.

Set BackstageItemsPanelElement.BackColor = 64, 53, 130

Close the Edit UI Elements dialog box and save then Start.  

Open the Backstage and you can see the "Back Button" at the very top still has the blue backcolor (No clue why this object doesnt get it's background from its Parent but it does not) so lets fix the background color for that button.

 

Close the Ap if its still running.  Open the form in VS Designer.  Edit UI Elements.  Look down until you find this:

RootRadElement.BackstageViewElement.BackstageItemsPanelElement.RadButtonElement.FillPrimitive

Set RadButtonElement.FillPrimitive.BackColor = 64, 53, 130

and we have to get the border - found under the RadButtonElement.BorderPrimative.FORECOLOR

Set RadButtonElement.BorderPrimative.ForeColor = 64, 53, 130

Close Element hierarchy editor.  Save and Run.

 

Everything looks great now right!??  Attached image #3 (Second.png)

If you examine form.designer.vb you will see these three lines have been added:

 

This is the BackstageItemsPanelElement.Backcolor we changed:

CType(Me.myBackStage.GetChildAt(0).GetChildAt(2), Telerik.WinControls.UI.BackstageItemsPanelElement).BackColor = System.Drawing.Color.FromArgb(CType(CType(64, Byte), Integer), CType(CType(53, Byte), Integer), CType(CType(130, Byte), Integer))

 

This is the Back Button's FillPrimitive we changed (NOTE Indexes 0, 2, 0, 0)

CType(Me.myBackStage.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(0), Telerik.WinControls.Primitives.FillPrimitive).BackColor = System.Drawing.Color.FromArgb(CType(CType(64, Byte), Integer), CType(CType(53, Byte), Integer), CType(CType(130, Byte), Integer))

 

And this is the Back Button's BorderPrimitive we changed (NOTE Indexes 0, 2, 0, 2)

CType(Me.myBackStage.GetChildAt(0).GetChildAt(2).GetChildAt(0).GetChildAt(2), Telerik.WinControls.Primitives.BorderPrimitive).ForeColor = System.Drawing.Color.FromArgb(CType(CType(64, Byte), Integer), CType(CType(53, Byte), Integer), CType(CType(130, Byte), Integer))

 

And now to the CRASH.

Close the ap if still running. 

Open the form in Designer. 

Switch to Backstage. 

Click on the triangle thing again and this time Click on "Add Tab Item"

Save your form.

Close the form (Designer)

Now try to reload the form in the Designer.

 

CRASH!!!

You get a Dialog that i believe the Ribbon is throwing (Or more precisely the Backstage object) that says "Error parsing RadItem:  Children collection index is not valid: 0 - 2 - 0 - 0" - See attached image "Crash.png" - this is followed by another almost identical error dialog box except this one will say "0 - 2 - 0 - 2" 

 

Those three lines i posted above that were added to the form.Designer.vb code the first one is fine and has no issues.  The next two lines however are what's causing the problems (FillPrimitive and BorderPrimitive)

 

Any help anyone can offer would be very very appreciated at this time.  I've spent two days trying to work this out.  If there's no way to fix this can anyone suggest an alternate way for me to change those background colors without altering the Theme? 

 

Cheers all!

 

 

 

 

Completed
Last Updated: 02 Feb 2023 09:36 by ADMIN
Release R1 2023

To reproduce the issue, just drag a RadToggleSwitch to the form. Then, at run time call the method:

radToggleSwitch1.SetToggleState(newValue: false, animate: false);

You will notice that the colors are changed but the thumb is not moved: 

Workaround:

            this.radToggleSwitch1.AllowAnimation = false;
            this.radToggleSwitch1.Toggle();

Completed
Last Updated: 02 Feb 2023 09:36 by ADMIN
Release R1 2023
NullReferenceException is thrown the control is focused and RadCheckDropDownListElement is used as a custom editor.
Completed
Last Updated: 02 Feb 2023 09:36 by ADMIN
Release R1 2023

Steps to reproduce:

1. Press the left mouse button inside RadToggleSwitch. (MouseDown)

2. Move the mouse 1 px up or down (but still inside the RadToggleSwitch). (MouseMove)

3. If you release the left mouse button now, the switch will not toggle. (MouseUp)

Only if the mouse location at the moment of Press and Release are exactly the same, the toggle action will be triggered.

Completed
Last Updated: 02 Feb 2023 09:35 by ADMIN
Release R1 2023
When importing RTF the with specific font the FontSubstituting event is not fired.
Completed
Last Updated: 02 Feb 2023 09:35 by ADMIN
Release R1 2023
RadToggleSwitch can be activated and the slider can be dragged by using the right mouse button as well. That's not supposed to happen.
Completed
Last Updated: 02 Feb 2023 09:35 by ADMIN
Release R1 2023

Run the project and open the overflow menu. If you focus one of the editors and press the down arrow, the following error occurs:

   at Telerik.WinControls.RadMessageFilter.NotifyGetMessageEvent(Message& msg)
   at Telerik.WinControls.RadMessageFilter.GetMessageHookProc(Int32 code, IntPtr wParam, IntPtr lParam)   at Telerik.WinControls.UI.RadDropDownMenu.ProcessUpDownNavigationKey(Boolean isUp)
   at Telerik.WinControls.UI.RadDropDownMenu.OnKeyDown(Keys keyData)
   at Telerik.WinControls.UI.PopupManager.OnKeyDown(Message& msg)
   at Telerik.WinControls.UI.PopupManager.Telerik.WinControls.IMessageListener.PreviewMessage(Message& msg)
   at Telerik.WinControls.RadMessageFilter.NotifyGetMessageEvent(Message& msg)
   at Telerik.WinControls.RadMessageFilter.GetMessageHookProc(Int32 code, IntPtr wParam, IntPtr lParam)
Completed
Last Updated: 02 Feb 2023 09:35 by ADMIN
Release R1 2023
StepProgressItems added dynamically are not visualized.
Completed
Last Updated: 02 Feb 2023 09:35 by ADMIN
Release R1 2023

To reproduce:

this.radRichTextEditor1.Text = null;

Completed
Last Updated: 02 Feb 2023 09:35 by ADMIN
Release R1 2023

Import the attached sample file, right-click on the first cell and select Format Cell:

Expected result: correct cell style should be loaded as it is MS Excel:

Completed
Last Updated: 02 Feb 2023 09:35 by ADMIN
Release R1 2023

Import the attached document:

Expected result: the cell B1 should be rendered with bold text as in MS Excel:

Completed
Last Updated: 02 Feb 2023 09:34 by ADMIN
Release R1 2023
Created by: Wenyu
Comments: 1
Category: UI for WinForms
Type: Bug Report
0

After installing R3 2022, the QuickStart example can't be run:

 

 
Completed
Last Updated: 02 Feb 2023 09:34 by ADMIN
Release R1 2023
In this case, the RadRibboBar collapsed. So when we add a group run-time, its theme is not applied.
In Development
Last Updated: 02 Feb 2023 09:26 by ADMIN
Scheduled for R1 2023 SP1

Steps to reproduce:

1. Bind the grid and enable the search row

2. Enter some search text

3. Delete records from the applied DataSource collection. It may be necessary to perform the delete operation several times before the error occurs.

The error can be reproduced with the following code snippet: 

    Dim dt As New DataTable
    Sub New()

        InitializeComponent()

        dt.Columns.Add("Id", GetType(Integer))
        dt.Columns.Add("Name", GetType(String))
        For index = 1 To 10000
            dt.Rows.Add(index, Guid.NewGuid.ToString())

        Next
        Me.RadGridView1.DataSource = dt
        Me.RadGridView1.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill

        Me.RadGridView1.AllowSearchRow = True

    End Sub

    Private Sub RadButton1_Click(sender As Object, e As EventArgs) Handles RadButton1.Click
        For index = 1 To 50
            dt.Rows.RemoveAt(0)
        Next
    End Sub

There is a sample project attached as well and its result is illustrated in the gif file.

Stack trace:

   at Telerik.WinControls.UI.MasterGridViewTemplate.set_CurrentRow(GridViewRowInfo value)
   at Telerik.WinControls.UI.RadGridView.set_CurrentRow(GridViewRowInfo value)
   at Telerik.WinControls.UI.GridViewSearchRowInfo.SetCurrent(GridSearchResultCellInfo cell)
   at Telerik.WinControls.UI.GridViewSearchRowInfo.SetCurrent(GridSearchResultCellInfo cell, Boolean checkInvokeRequired)
   at Telerik.WinControls.UI.GridViewSearchRowInfo.SelectNextSearchResult()
   at Telerik.WinControls.UI.GridViewSearchRowInfo.Search(String criteria)
   at Telerik.WinControls.UI.GridViewSearchRowInfo.Telerik.WinControls.UI.IGridViewEventListener.PostProcessEvent(GridViewEvent eventData)
   at Telerik.WinControls.UI.GridViewEventProcessEntity.ProcessCollection(GridViewEvent gridEvent, PriorityWeakReferenceList list, GridEventProcessMode processMode)
   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.DispatchEvent(GridViewTemplate template, GridViewEvent eventData, Boolean postUI)
   at Telerik.WinControls.UI.GridViewRowCollection.DispatchDataViewChangedEvent(DataViewChangedEventArgs args, GridEventType type)
   at Telerik.WinControls.UI.GridViewRowCollection.ListSource_CollectionChanged(Object sender, NotifyCollectionChangedEventArgs e)
   at Telerik.WinControls.Data.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)
   at Telerik.WinControls.Data.RadListSource`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
   at Telerik.WinControls.Data.RadListSource`1.RemoveItem(Int32 index)
   at Telerik.WinControls.Data.RadListSource`1.currencyManager_ListChanged(Object sender, ListChangedEventArgs e)
   at System.Windows.Forms.CurrencyManager.OnListChanged(ListChangedEventArgs e)
   at System.Windows.Forms.CurrencyManager.List_ListChanged(Object sender, ListChangedEventArgs e)
   at System.Windows.Forms.BindingSource.OnListChanged(ListChangedEventArgs e)
   at System.Windows.Forms.BindingSource.InnerList_ListChanged(Object sender, ListChangedEventArgs e)
   at System.ComponentModel.BindingList`1.OnListChanged(ListChangedEventArgs e)
   at System.ComponentModel.BindingList`1.FireListChanged(ListChangedType type, Int32 index)
   at System.ComponentModel.BindingList`1.RemoveItem(Int32 index)
   at System.Collections.ObjectModel.Collection`1.Remove(T item)
   at System.Collections.ObjectModel.Collection`1.System.Collections.IList.Remove(Object value)
   at System.Windows.Forms.BindingSource.Remove(Object value)

 

In Development
Last Updated: 02 Feb 2023 09:25 by ADMIN
Scheduled for R1 2023 SP1
While using a RadOverlayManager to indicate a long-lasting operation, calling the  RadOverlayManager.Close method puts the main form behind the other opened applications. A sample project is attached.
1 2 3 4 5 6