The last row is not detected in the Inspect Tool and in the Accessibility Insights for Windows tool.
I noticed a weird issue with the RadTextBoxControl when using a combination of word wrap and multiline.
If the text that is being wrapped is too close to the edge of the control, the selection highlight renders incorrectly.
Here is an example:
I have attached a sample to reproduce the issue.
In this case, the control is populated with business objects. The AutoCompleteDisplayMember property of the control point to a property of this object. This property can have a similar value to more than one item from the source collection. When we try to select a specific item using the Text property, the control will select the first occurrence of the value that is found in the collection. This behavior can be improved to allow to select specific item from the collection with duplicate values.
I'm a Progress OpenEdge developer and found issue with RadGridView using it in a ABL application. I have been able to reproduce the issue outside of the OpenEdge environment, and have attached a project file.
To see the issue, run the app, and scroll down really quickly with scrollbar thumb to the bottom.
You will then get:
System.NullReferenceException
HResult=0x80004003
Message=Object reference not set to an instance of an object.
Source=Telerik.WinControls.GridView
StackTrace:
at Telerik.WinControls.UI.ExpressionAccessor.EvaluateExpression(GridViewRowInfo row, GridViewColumn column)
Call Stack when I'm in my project:
> WindowsFormsApp1_NetFramework.exe!Progress.Data.DataSource.FillCacheFromPVMSource(Progress.Data.CacheRow cacheRow, int rowIx) Line 579 C#
WindowsFormsApp1_NetFramework.exe!Progress.Data.DataSource.GetRowError(int rowIx) Line 651 C#
WindowsFormsApp1_NetFramework.exe!Progress.Data.DummyRow.Error.get() Line 1347 C#
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridViewRowInfo.ErrorText.get() Unknown
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridDataRowElement.UpdateInfo() Unknown
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridRowElement.Initialize(Telerik.WinControls.UI.GridViewRowInfo rowInfo) Unknown
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridRowElement.Attach(Telerik.WinControls.UI.GridViewRowInfo row, object context) Unknown
Telerik.WinControls.UI.dll!Telerik.WinControls.UI.BaseVirtualizedContainer<Telerik.WinControls.UI.GridViewRowInfo>.UpdateElement(int position, Telerik.WinControls.UI.GridViewRowInfo data) Unknown
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.ScrollableRowsContainerElement.UpdateElement(int position, Telerik.WinControls.UI.GridViewRowInfo data) Unknown
Telerik.WinControls.UI.dll!Telerik.WinControls.UI.BaseVirtualizedContainer<Telerik.WinControls.UI.GridViewRowInfo>.MeasureElements() Unknown
Telerik.WinControls.UI.dll!Telerik.WinControls.UI.BaseVirtualizedContainer<Telerik.WinControls.UI.GridViewRowInfo>.MeasureOverride(System.Drawing.SizeF availableSize) Unknown
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.ScrollableRowsContainerElement.MeasureOverride(System.Drawing.SizeF availableSize) Unknown
Telerik.WinControls.dll!Telerik.WinControls.RadElement.MeasureCore(System.Drawing.SizeF availableSize) Unknown
Telerik.WinControls.dll!Telerik.WinControls.RadElement.Measure(System.Drawing.SizeF availableSize) Unknown
Telerik.WinControls.dll!Telerik.WinControls.Layouts.ContextLayoutManager.UpdateLayout() Unknown
Telerik.WinControls.dll!Telerik.WinControls.Layouts.ContextLayoutManager.UpdateLayoutCallback(Telerik.WinControls.Layouts.ILayoutManager manager) Unknown
[Native to Managed Transition]
[Managed to Native Transition]
mscorlib.dll!System.Delegate.DynamicInvokeImpl(object[] args) Line 123 C#
System.Windows.Forms.dll!System.Windows.Forms.Control.InvokeMarshaledCallbackDo(System.Windows.Forms.Control.ThreadMethodEntry tme) Unknown
System.Windows.Forms.dll!System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(object obj) Unknown
mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) Line 980 C#
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) Line 928 C#
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Line 917 C#
Once I relinguish control back to Telerik, I get:
System.NullReferenceException
HResult=0x80004003
Message=Object reference not set to an instance of an object.
Source=Telerik.WinControls.GridView
StackTrace:
at Telerik.WinControls.UI.ExpressionAccessor.EvaluateExpression(GridViewRowInfo row, GridViewColumn column)
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.ExpressionAccessor.EvaluateExpression(Telerik.WinControls.UI.GridViewRowInfo row, Telerik.WinControls.UI.GridViewColumn column) Unknown
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.ExpressionAccessor.this[Telerik.WinControls.UI.GridViewRowInfo].get(Telerik.WinControls.UI.GridViewRowInfo row) Unknown
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridViewRowInfo.this[Telerik.WinControls.UI.GridViewColumn].get(Telerik.WinControls.UI.GridViewColumn column) Unknown
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridDataCellElement.Value.get() Unknown
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridCellElement.SetContent() Unknown
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridVirtualizedCellElement.Initialize(Telerik.WinControls.UI.GridViewColumn column, Telerik.WinControls.UI.GridRowElement row) Unknown
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridVirtualizedCellElement.Attach(Telerik.WinControls.UI.GridViewColumn data, object context) Unknown
Telerik.WinControls.UI.dll!Telerik.WinControls.UI.BaseVirtualizedContainer<Telerik.WinControls.UI.GridViewColumn>.InsertElement(int position, Telerik.WinControls.UI.IVirtualizedElement<Telerik.WinControls.UI.GridViewColumn> element, Telerik.WinControls.UI.GridViewColumn data) Unknown
Telerik.WinControls.UI.dll!Telerik.WinControls.UI.BaseVirtualizedContainer<Telerik.WinControls.UI.GridViewColumn>.UpdateElement(int position, Telerik.WinControls.UI.GridViewColumn data) Unknown
Telerik.WinControls.UI.dll!Telerik.WinControls.UI.BaseVirtualizedContainer<Telerik.WinControls.UI.GridViewColumn>.MeasureElements() Unknown
Telerik.WinControls.UI.dll!Telerik.WinControls.UI.BaseVirtualizedContainer<Telerik.WinControls.UI.GridViewColumn>.MeasureOverride(System.Drawing.SizeF availableSize) Unknown
Telerik.WinControls.dll!Telerik.WinControls.RadElement.MeasureCore(System.Drawing.SizeF availableSize) Unknown
Telerik.WinControls.dll!Telerik.WinControls.RadElement.Measure(System.Drawing.SizeF availableSize) Unknown
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridVirtualizedRowElement.MeasureElements(System.Drawing.SizeF availableSize, System.Drawing.SizeF clientSize, System.Windows.Forms.Padding borderThickness) Unknown
Telerik.WinControls.UI.dll!Telerik.WinControls.UI.LightVisualElement.MeasureOverride(System.Drawing.SizeF availableSize) Unknown
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.GridRowElement.MeasureOverride(System.Drawing.SizeF availableSize) Unknown
Telerik.WinControls.dll!Telerik.WinControls.RadElement.MeasureCore(System.Drawing.SizeF availableSize) Unknown
Telerik.WinControls.dll!Telerik.WinControls.RadElement.Measure(System.Drawing.SizeF availableSize) Unknown
Telerik.WinControls.UI.dll!Telerik.WinControls.UI.VirtualizedStackContainer<Telerik.WinControls.UI.GridViewRowInfo>.MeasureElementCore(Telerik.WinControls.RadElement element, System.Drawing.SizeF availableSize) Unknown
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.ScrollableRowsContainerElement.MeasureElementCore(Telerik.WinControls.RadElement element, System.Drawing.SizeF availableSize) Unknown
Telerik.WinControls.UI.dll!Telerik.WinControls.UI.VirtualizedStackContainer<Telerik.WinControls.UI.GridViewRowInfo>.MeasureElement(Telerik.WinControls.UI.IVirtualizedElement<Telerik.WinControls.UI.GridViewRowInfo> element) Unknown
Telerik.WinControls.UI.dll!Telerik.WinControls.UI.BaseVirtualizedContainer<Telerik.WinControls.UI.GridViewRowInfo>.MeasureElements() Unknown
Telerik.WinControls.UI.dll!Telerik.WinControls.UI.BaseVirtualizedContainer<Telerik.WinControls.UI.GridViewRowInfo>.MeasureOverride(System.Drawing.SizeF availableSize) Unknown
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.ScrollableRowsContainerElement.MeasureOverride(System.Drawing.SizeF availableSize) Unknown
Telerik.WinControls.dll!Telerik.WinControls.RadElement.MeasureCore(System.Drawing.SizeF availableSize) Unknown
Telerik.WinControls.dll!Telerik.WinControls.RadElement.Measure(System.Drawing.SizeF availableSize) Unknown
Telerik.WinControls.dll!Telerik.WinControls.Layouts.ContextLayoutManager.UpdateLayout() Unknown
Telerik.WinControls.dll!Telerik.WinControls.Layouts.ContextLayoutManager.UpdateLayoutCallback(Telerik.WinControls.Layouts.ILayoutManager manager) Unknown
[Native to Managed Transition]
[Managed to Native Transition]
mscorlib.dll!System.Delegate.DynamicInvokeImpl(object[] args) Line 123 C#
System.Windows.Forms.dll!System.Windows.Forms.Control.InvokeMarshaledCallbackDo(System.Windows.Forms.Control.ThreadMethodEntry tme) Unknown
System.Windows.Forms.dll!System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(object obj) Unknown
mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) Line 980 C#
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) Line 928 C#
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Line 917 C#
System.Windows.Forms.dll!System.Windows.Forms.Control.InvokeMarshaledCallback(System.Windows.Forms.Control.ThreadMethodEntry tme) Unknown
System.Windows.Forms.dll!System.Windows.Forms.Control.InvokeMarshaledCallbacks() Unknown
System.Windows.Forms.dll!System.Windows.Forms.Control.WndProc(ref System.Windows.Forms.Message m) Unknown
System.Windows.Forms.dll!System.Windows.Forms.ScrollableControl.WndProc(ref System.Windows.Forms.Message m) Unknown
Telerik.WinControls.dll!Telerik.WinControls.RadControl.WndProc(ref System.Windows.Forms.Message m) Unknown
Telerik.WinControls.GridView.dll!Telerik.WinControls.UI.RadGridView.WndProc(ref System.Windows.Forms.Message m) Unknown
System.Windows.Forms.dll!System.Windows.Forms.Control.ControlNativeWindow.OnMessage(ref System.Windows.Forms.Message m) Unknown
System.Windows.Forms.dll!System.Windows.Forms.Control.ControlNativeWindow.WndProc(ref System.Windows.Forms.Message m) Unknown
System.Windows.Forms.dll!System.Windows.Forms.NativeWindow.DebuggableCallback(System.IntPtr hWnd, int msg, System.IntPtr wparam, System.IntPtr lparam) Unknown
[Native to Managed Transition]
[Managed to Native Transition]
System.Windows.Forms.dll!System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(System.IntPtr dwComponentID, int reason, int pvLoopData) Unknown
System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(int reason, System.Windows.Forms.ApplicationContext context) Unknown
System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.RunMessageLoop(int reason, System.Windows.Forms.ApplicationContext context) Unknown
System.Windows.Forms.dll!System.Windows.Forms.Application.Run(System.Windows.Forms.Form mainForm) Unknown
> WindowsFormsApp1_NetFramework.exe!WindowsFormsApp1_NetFramework.Program.Main() Line 19 C#
/////////////////////////////////////////////////////////////////////////////////////////////////
The following notes will explain what we are doing, since it may not be typical.
The MaxDataGuess functionality offers a time-saving alternative for the OpenEdge BindingSource that binds to a query with
this.toolWindow1.TabStrip.MinimumSize = new Size(200,200)
To reproduce:
ThemeResolutionService.ApplicationThemeName = "Windows11"
Dim UserGroup As New DescriptionTextListDataItem
With UserGroup
.Text = "Admins"
'.Font = New Font("Microsoft Sans Serif", 9.75, FontStyle.Bold)
.DescriptionText = "System Administrations Group"
End With
Me.RadListControl1.Items.Add(UserGroup)
Me.RadListControl1.ItemHeight = 50
Actual result:
Expected result:
Use attached to reproduce: - Disable and then enable the RadSateTimePicker - You will notice that even the checkbox is unchecked the control is enabled. Workaround: radDateTimePicker1.Enabled =true; if (!radDateTimePicker1.DateTimePickerElement.Checked) { radDateTimePicker1.DateTimePickerElement.TextBoxElement.TextBoxItem.HostedControl.Enabled = false; }
To reproduce: this.radDropDownList1.DropDownListElement.AutoCompleteMode = AutoCompleteMode.SuggestAppend; this.radDropDownList1.DropDownListElement.AutoCompleteAppend.LimitToList = true; this.radDropDownList1.DataSource = new List<string>() { "Test1", "Test2" }; Copy "Test2" and right click over the textbox. The second item is selected. However, if you press Ctrl+V instead of using the Paste option in the context menu, nothing happens. Workaround: Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load RadDropDownList1.DropDownListElement.AutoCompleteMode = AutoCompleteMode.SuggestAppend RadDropDownList1.DropDownListElement.AutoCompleteAppend.LimitToList = True RadDropDownList1.DataSource = {"Test1", "Test2"} Me.RadDropDownList1.DropDownListElement.AutoCompleteAppend = New CustomAutoCompleteAppendHelper(Me.RadDropDownList1.DropDownListElement) End Sub Public Class CustomAutoCompleteAppendHelper Inherits AutoCompleteAppendHelper Public Sub New(owner As RadDropDownListElement) MyBase.New(owner) End Sub Public Overrides Sub AutoComplete(e As KeyPressEventArgs) If Control.ModifierKeys = Keys.Control AndAlso Asc(e.KeyChar) = 22 Then Me.AutoComplete(e, False) Else Me.AutoComplete(e, Me.LimitToList) End If End Sub End Class
To reproduce: - Add some rows to a grid. - Sort the rows. - Delete a row. - The current row is not the next row. Workaround: Dim t As Test = RadGridView1.CurrentRow.DataBoundItem Dim index As Integer = Me.RadGridView1.ChildRows.IndexOf(Me.RadGridView1.CurrentRow) datasource.Remove(t) Me.RadGridView1.CurrentRow = Me.RadGridView1.ChildRows(index)
How to reproduce: set a size in the designer, when the form loads its size will not be the same as the one set Workaround: set the size in the Load event of the ribbon form private void Form_Shown(object sender, EventArgs e) { this.Size = new Size(600, 600); }
To reproduce: 1. Use the following code snippet: public class ViewModel:INotifyPropertyChanged { public ViewModel() { } private bool _isShown; public bool IsShown { get { return this._isShown; } set { this._isShown = value; OnPropertyChanged("IsShown"); } } public event PropertyChangedEventHandler PropertyChanged; protected void OnPropertyChanged(string propertyName) { PropertyChangedEventHandler handler = PropertyChanged; if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName)); } } 2. Add a MS Panel and a RadPanel to the form. 3. Add Panel.DataBindings at design time for its Visible property to the ViewModel.IsShown property. 4. When you run the application, the MS Panel is not visible. However, if you remove the RadPanel it is shown. Please refer to the attached sample video illustrtaing better the performed steps.
Run the attached project and select a new value from the drop down for RadTimePicker:
************** Exception Text ************** System.NullReferenceException: Object reference not set to an instance of an object. at Telerik.WinControls.UI.RadTimePickerElement.set_Value(Object value) in C:\Work\Development\RadControls\RadControlsUI\RadTimePicker\Elements\RadTimePickerElement.cs:line 594 at Telerik.WinControls.UI.RadTimePickerContentElement.element_Click(Object sender, EventArgs e) in C:\Work\Development\RadControls\RadControlsUI\RadTimePicker\Elements\ContentPart\RadTimePickerContentElement.cs:line 585 at Telerik.WinControls.RadElement.OnClick(EventArgs e) in C:\Work\Development\RadControls\RadControl\TPF\Element\RadElement.cs:line 5094 at Telerik.WinControls.RadElement.DoClick(EventArgs e) in C:\Work\Development\RadControls\RadControl\TPF\Element\RadElement.cs:line 5158 at Telerik.WinControls.RadElement.RaiseBubbleEvent(RadElement sender, RoutedEventArgs args) in C:\Work\Development\RadControls\RadControl\TPF\Element\RadElement.cs:line 4272 at Telerik.WinControls.RadItem.RaiseBubbleEvent(RadElement sender, RoutedEventArgs args) in C:\Work\Development\RadControls\RadControl\TPF\Element\RadItem.cs:line 779 at Telerik.WinControls.RadElement.RaiseRoutedEvent(RadElement sender, RoutedEventArgs args) in C:\Work\Development\RadControls\RadControl\TPF\Element\RadElement.cs:line 4179 at Telerik.WinControls.RadElement.DoMouseUp(MouseEventArgs e) in C:\Work\Development\RadControls\RadControl\TPF\Element\RadElement.cs:line 5271 at Telerik.WinControls.RadElement.CallDoMouseUp(MouseEventArgs e) in C:\Work\Development\RadControls\RadControl\TPF\Element\RadElement.cs:line 5493 at Telerik.WinControls.ComponentInputBehavior.OnMouseUp(MouseEventArgs e) in C:\Work\Development\RadControls\RadControl\TPF\Control\ComponentInputBehavior.cs:line 75 at Telerik.WinControls.RadControl.OnMouseUp(MouseEventArgs e) in C:\Work\Development\RadControls\RadControl\TPF\Control\RadControl.cs:line 1206 at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ScrollableControl.WndProc(Message& m) at Telerik.WinControls.RadControl.WndProc(Message& m) in C:\Work\Development\RadControls\RadControl\TPF\Control\RadControl.cs:line 1554 at Telerik.WinControls.UI.RadPopupControlBase.WndProc(Message& m) in C:\Work\Development\RadControls\RadControlsUI\GenericPopup\RadPopupControlBase.cs:line 795 at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Workaround:
Timer t = new Timer();
private void RadTimePicker1_ValueChanged(object sender, EventArgs e)
{
if (radTimePicker1.Value == null) return;
var timeval = ((DateTime)radTimePicker1.Value).TimeOfDay;
if (timeval == TimeSpan.Zero)
{
t = new Timer();
t.Interval = 500;
t.Tick += T_Tick; t.Start();
}
}
private void T_Tick(object sender, EventArgs e)
{
t.Stop();
this.radTimePicker1.ValueChanged -= RadTimePicker1_ValueChanged;
this.radTimePicker1.Value = null;
this.radTimePicker1.ValueChanged += RadTimePicker1_ValueChanged;
}
To reproduce: - Add some full pages to the editor. - Remove all margin from the print settings and document settings. - PrintPreview the document. - Seth the print preview dialog zoom to 100% and compare the documents. - You will notice that the print document's content is smaller.
Please refer to the attached screenshot and sample project. Workaround: call the RadForm.EndInit method before showing the form.
Follow the steps:
1.Group by Description.
2. Expand the groups
3. Sort by Id
4. Try expanding the hierarchical level. You will notice that some of the rows disappear.
Please refer to the attached gif file illustrating the steps for replicating the issue.
Use the code snippet:
Sub New()
InitializeComponent()
Me.RadSpinEditor1.EnableNullValueInput = True
Me.RadSpinEditor1.NullableValue = Nothing
Console.WriteLine("Value " & Me.RadSpinEditor1.Value & " END")
Console.WriteLine("NullableValue " & Me.RadSpinEditor1.NullableValue & " END")
End Sub
Private Sub RadSpinEditor1_NullableValueChanged(sender As Object, e As EventArgs) Handles RadSpinEditor1.NullableValueChanged
Console.WriteLine("NullableValueChanged " & Me.RadSpinEditor1.NullableValue & " END")
End Sub
Follow the steps:
1. Run the project with the above code and enter 0 in the spin editor. Navigate to the next control. You will notice that the NullableValueChanged event doesn't get fired.
2. Focus the spin editor again and enter 5. Navigate to the next control. The NullableValueChanged event is fired as expected.
3. Focus again the spin editor, select the text and press Del. Navigate to the next control. The NullableValueChanged event is fired again as expected.
4. Focus again the spin editor and enter 0. Navigate to the next control. You will notice that the NullableValueChanged event is fired.
5. Focus again the spin editor, select the text and press Del. Navigate to the next control. The NullableValueChanged event is fired again as expected.
6. Focus again the spin editor and enter 0. Navigate to the next control. You will notice that the NullableValueChanged event is NOT fired in this case.