Please refer to the attached sample project.
Use the following code snippet and click the button to delete the first item from the BindingList:
BindingList<DoctorTest> list = new BindingList<DoctorTest>();
public RadForm1()
{
InitializeComponent();
for (int i = 0; i < 5; i++)
{
list.Add(new DoctorTest(i,"Item"+i));
}
this.radDropDownList1.DisplayMember = "Name";
this.radDropDownList1.ValueMember = "Id";
this.radDropDownList1.DataSource = list;
this.radDropDownList1.SelectedIndex = 4;
this.radDropDownList1.SelectedValueChanged+=radDropDownList1_SelectedValueChanged;
}
private void radDropDownList1_SelectedValueChanged(object sender, EventArgs e)
{
RadMessageBox.Show(this.radDropDownList1.SelectedValue +" ---");
}
public class DoctorTest
{
public int Id { get; set; }
public string Name { get; set; }
public DoctorTest(int id, string name)
{
this.Id = id;
this.Name = name;
}
}
private void radButton1_Click(object sender, EventArgs e)
{
list.RemoveAt(0);
}
RadDropDownList gets focused when the DpiScaleChanged is triggered.
Run the attached sample project. When the form is moved from monitor A (100% DPI) to monitor B (150% DPI), every RadDropDownList gets the focus which leads to scrolling the container back to the top.
Use the following code snippet and refer to the attached gif file:
private RadDropDownList Drop { get; set; }
public RadForm1()
{
InitializeComponent();
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
this.Drop = new RadDropDownList();
this.Drop.AutoSize = true;
this.Drop.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList; //So users can't write.
this.Drop.Font = new Font("Segoe UI", 11.25f, FontStyle.Regular, GraphicsUnit.Point);
RadListDataItem item = new RadListDataItem();
item.Value = string.Empty;
item.Text = string.Empty;
this.Drop.Items.Add(item);
RadListDataItem item2 = new RadListDataItem();
item2.Value = "Hello";
item2.Text = "Hello";
this.Drop.Items.Add(item2);
this.Controls.Add(this.Drop);
this.Drop.SizeChanged += Drop_SizeChanged;
}
private void Drop_SizeChanged(object sender, EventArgs e)
{
this.Text = this.Drop.Size.ToString();
}
}
1. PropertyGridTextBoxEditor becomes smaller height.
2. DropDownListEditorElement also has a small height and popup appear with a vertical scrollbar.
The currently applied theme is VisualStudio2022Light. The button its move down due to the scaling mechanism.
Run the attached project and minimize the form. Then, restore to its normal state:
Initial state:
After minimizing the form and restoring to its normal state, the arrow for RadDropDownList seems clipped:
Run the attached project and open the drop down. When the mouse wheel is used, the items in the drop down are expected to scroll.
Expected: items are scrolled.
Actual: nothing happens
Note: It works in .NET 4.8, but not in .NET 6
It worked in R2 2022 SP1.
FIX. RadDropDownList - the control looks different than the rest of the editors when disabled and using DropDownList style
Please run the attached sample project and you will notice that the arrow button is missing. If you comment applying the Office2019Light theme the arrow is shown.
Fluent theme:
Workaround:
Me.RadDropDownList1.DropDownListElement.ArrowButtonMinWidth = 20
I created a simple project just with a dropdownlist. The data source of the dropdownlist is a reader from SQL. First time, when I type something in the text area of the dropdownlist, the autocomplete works perfectly: if a type "235", it brings me at the first job starting with '235' and I can select the job. After, when I click back in the text area to type something else (for example: "236"), I can just type '2'. It won't let me type anything else and the autocomplete is not working. The autocomplete mode is Suggest.
This is a new problem with telerik 2020.2.512.40. Just previously, I had the trial version (2020.1.218.40) and it was working without problem. I didn't change anything in the small project. In fact, I took this project and put Telerik.Wincontrols.UI version 2020.1.218.40 anf it was working properly. I put back the version 2020.2.512.40 of the control and the problem reappeared.
First time (works fine):
Seconf time: not able to type more than 1 character
To reproduce the problem, we need 2 Monitors with different scaling.
Let's say that Monitor 1 has 150% Scaling and Monitor 2 has 100% (Monitor 2 is the main monitor). When starting the program and click on radbutton1, then an empty form (Toolbox) is shown. Move the Toolbox form to the other monitor and then open the RadDropDownList. The problem is that the drop-down is shown not under the control.
Please refer to the attached project.
Setting the DataSource in the SelectedIndexChanged event will trigger the event again. Thus leading to StackOverflowException.
A possible workaround will be to unsubscribe from the event when changing the DataSource property or raise a flag which can be checked in the event handler.
StackOverflowException is thrown when setting SelectedValue in the SelectedIndexChanged event.
To workaround this we can unsubscribe from the event before setting the SelectedValue property and then subscribe again. Another approach is to change the SelectedIndex property in the SelectedIndexChanged or SelectedValue in the SelectedValueChanged event.
Using this font is OK:
Font("Calibri", 24, FontStyle.Regular, GraphicsUnit.Pixel)
But using this font is not OK, the Unit is not respected:
Font("Calibri", 24, FontStyle.Italic | FontStyle.Bold, GraphicsUnit.Pixel)
The control also is increased in height.