Repro-steps:
Expected behavior:
Observed behavior:
I traced the problem back to the method GridViewSleectedCellsCollection.IsSelected / GetHashCodeString.
internal bool IsSelected(GridViewRowInfo row, GridViewColumn column) => row != null && column is GridViewDataColumn && this.hashtable.Contains((object) this.GetHashCodeString(row, column));
When a cell is selected with GridViewCellInfo.IsSelected = true, it checks if it has already been selected. It does so by calling GridViewSleectedCellsCollection.IsSelected. which checks if a HasCodeString is already in a hashtable. But, when another selected cell has the same HasCodeString, the result is (incorrectly) true, which will result in not added it to the collection of selected cells.
I guess that is can be easily fixed by changing:
private string GetHashCodeString(GridViewRowInfo row, GridViewColumn column)
{
int hashCode = row.GetHashCode();
string str1 = hashCode.ToString();
hashCode = column.GetHashCode();
string str2 = hashCode.ToString();
return str1 + str2;
}
to:
private string GetHashCodeString(GridViewRowInfo row, GridViewColumn column)
{
int hashCode = row.GetHashCode();
string str1 = hashCode.ToString();
hashCode = column.GetHashCode();
string str2 = hashCode.ToString();
return str1 + "_" + str2;
}
Since hashcodes 1 + 23 will result in the same string as hashcodes 12 + 3.
Making this change will reduce the problem significantly, but not entirely since hashCodes will never be unique.
This bug is not about RadGridView, but about this ticketing system. I simply did not know where to send it.
Repro steps
Expected behavior
Observed behavior
Repro-steps
Expected behavior
Observed behavior
The problem is, after each (!!!) deleted row (not after all deleted rows) the sort-routine kicks in. Sorting all remaining rows. That is 7999 times to many.
One can argue that sorting after deleting something is not required at alle, since the order of the remaining rows (in this case none, but in one cases maybe more) will never change.
I also noticed a HybridIndex is used, possibly to increase performance during adding. Somehow it might hinder performance during deleting stuff.
I would like to have a generic validation-mechanism, implemented in all controls. Hear me out:
A class ValidationInformation for containing all sort of validation information for a certain field, property, cell, etc. which has properties likes:
It also has a virtual method like bool Validate(object entity, object value, out string validationError).
A base class ValidationInformationProvider for retrieving validation information from various sources. It has some abstract methods for retrieval, storing/caching information per cell/field/property.
This base class has the following subclasses:
Each provider is responsible for reading validation information from the source (DataTable, annotations on a property, etc.) and fill a ValidationInformation object.
Now the fun begins...
Each Telerik class, like RadGridView and/or subcomponents should get a method or event to retrieve ValidationInformation. When the event is not handled or the method returns null, the default behavior kicks in.
When ValidationInformation is provided, default behavior is overridden. Properties of editors van be set with values from ValidationInformation (like Minimum and Maximum of a GridViewDecimalColumnPlus or RadSpinEditorElement). At the end if editing the method ValidationInformation.Validate is called to validate the new value. The validation error can be used for popups, or tooltips, or an exception.
This way a user does not have to think where to set which property of any Telerik control for any validation. This way a RadPropertyGrid and RadGridView can work the same way when it comes to data validation, regardless of all editors which work in the background.
Currently, RadGridView offers GridViewImageColumn. However, it would be good to offer support for SVG images out of the box.
One possible approach is to introduce a new property for the GridViewImageColumn - ImageDrawType = ImageDrawType.Svg that controls what kind of images this column will store.
Second approach is to introduce a new GridViewSvgImageColumn.
Presently none of the controls can be navigated to using the TAB key or the shift TAB combination.
For example, in this picture I would like to be able to go from the Verdana font to the size 12 font using TAB key controls. I would like to be able to do this for all controls within the editor. I have asked support and presently this wouldn't be possible.
To reproduce:
this.radCheckBox1.Text = "Something (in brackets)";
this.radCheckBox1.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
Repro steps:
System.NullReferenceException: Object reference not set to an instance of an object. at Telerik.WinControls.UI.RadDateTimePickerCalendar.popupControl_Closing(Object sender, RadPopupClosingEventArgs args)Expected behavior:
- The dropdown closes after moving to another cell.
- No exception occurs.
Hi Support,
why does PropertyStoreItem has no property "Tag" as other classes?
I had a few scenarios, where I need to store additional informations at the PropertyStoreItem.
Best regards
Fritz
Hello,
Our product uses Infragistics controls. We have been in business for 21 years and since then we have been using Infragistics controls for WinForms. We would like to move to Telerik controls for WinForms, even though we already use Telerik controls for Blazor. Is there an easy way to convert them? Is there any plan to release a tool to convert them automatically? It will be very helpful and I am sure many companies are interested as well.
Thank you
It would be great if there were a right-click menu option for custom Rad controls to "apply the theme to all sub-controls", similar to how Forms work.
I've attached images to illustrate the functionality.
Right now it only works for forms, and my custom controls have to be manually adjusted one at a time, by hand, which is time consuming and error prone.
It would save a lot of time and reduce the chance of missing a control when applying themes locally.
Right now the only way to apply themes is either globally or individually by hand, or with a find-replace-in-files command on the ThemeName property.
In the exported PDF document, the font size of the header and footer is smaller than the font of the data cells, even though the specified font is the same size.
To reproduce set the same font to the header and data cells:
pdfExport.HeaderFont.Font = new Font("Segoe UI", 10f);
private void PdfExport_CellFormatting(object sender, PdfExportCellFormattingEventArgs e)
{
e.CellElement.Font = new Font("Segoe UI", 10f);
}
Hi All.
Could you please add or let me know locators for "RadChat" window for Automation purpose. I am unable to find locators on the below area.
Any anchor setting works, except for right + left, then the controls start to behave weird.
this.radMultiColumnComboBox4.Anchor = AnchorStyles.Left | AnchorStyles.Right;
this.radTextBoxControl2.Anchor = AnchorStyles.Left | AnchorStyles.Right;
this.radSpinEditor4.Anchor = AnchorStyles.Left | AnchorStyles.Right;
this.radDropDownList4.Anchor = AnchorStyles.Left | AnchorStyles.Right;
this.radMultiColumnComboBox3.Anchor = AnchorStyles.Left | AnchorStyles.Right;
this.radDropDownList3.Anchor = AnchorStyles.Left | AnchorStyles.Right;
this.radSpinEditor3.Anchor = AnchorStyles.Left | AnchorStyles.Right;
this.radTextBoxControl1.Anchor = AnchorStyles.Left | AnchorStyles.Right;
I would like to see a new property added to the RadLabel control: Style. Style is an enumeration with layout styles like in MS-Word:
When the style is applied, the styling (font, color, background, etc.) is applied conform the currently active Theme. Therefor all themes need to be expended to support this setting.
Of course the enum label 'Custom' should be present (or null) when a user tries to override the style-related properties (like font, color, background, etc.)
This is very usefull when a programmer wants to build his own form (with or without Layout / Flow controls).
Telerik already uses it a bit themselves: Some (data entry) controls already generate (group) headers and captions in there forms.
Using specifically Win11 Compact DARK theme has additional space compared to the Win11 Compact LIGHT theme. See the pictures.
In my opinion the dark theme has a wrong height here and the light theme is correct, especially compared to other themes, even Office 2019 for example.
Light theme:
Dark theme: