Repro-steps:
Expected behavior:
Observed behavior:
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;
}
}
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
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.
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)
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!
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();
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.
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)To reproduce:
this.radRichTextEditor1.Text = null;
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:
Import the attached document:
Expected result: the cell B1 should be rendered with bold text as in MS Excel:
After installing R3 2022, the QuickStart example can't be run:
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)