When set the SelectedIndex property in the DropDownClosed event selected index is not set correctly. Workaround: private void radMultiColumnComboBox1_DropDownClosed(object sender, Telerik.WinControls.UI.RadPopupClosedEventArgs args) { this.radMultiColumnComboBox1.SelectedIndex = 0; this.radMultiColumnComboBox1.EditorControl.CurrentRowChanging += new CurrentRowChangingEventHandler(EditorControl_CurrentRowChanging); } void EditorControl_CurrentRowChanging(object sender, CurrentRowChangingEventArgs e) { e.Cancel = true; this.radMultiColumnComboBox1.EditorControl.CurrentRowChanging -= EditorControl_CurrentRowChanging; }
Drop-down opening of RadMultiColumnComboBox delays, when the AutoSizeDropDownToBestFit property is enabled and the control is bound to more than 2000 records. Work around: this.radMultiColumnComboBox1.ValueMember = "ID"; this.radMultiColumnComboBox1.DisplayMember = "Name"; this.radMultiColumnComboBox1.DataSource = table; this.radMultiColumnComboBox1.AutoSizeDropDownToBestFit = false; this.radMultiColumnComboBox1.BestFitColumns(true, false);
FIX. RadMultiColumnComboBox - AutoFilter does not work in unbound mode
1. Create a new project with RadMultiColumnComboBox. 2. Set the AutoFilter property to true and add a filter description. 3. Run the project 4. Open the drop down and select some value. 5. Close the drop down and enter a value which is no in the list. 6. Open the drop down two more times.
To reproduce: public Form1() { InitializeComponent(); Random r = new Random(); DataTable table = new DataTable(); table.Columns.Add("ID", typeof(int)); table.Columns.Add("Name", typeof(string)); table.Columns.Add("Bool", typeof(bool)); table.Columns.Add("DateColumn", typeof(DateTime)); for (int i = 0; i < 10; i++) { table.Rows.Add(i, "Row " + i, r.Next(10) > 5 ? true : false, DateTime.Now.AddHours(i)); } radMultiColumnComboBox1.DataSource = table; radMultiColumnComboBox1.EditorControl.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill; radMultiColumnComboBox1.DropDownMinSize = new Size(500, 500); } To work around: radMultiColumnComboBox1.DropDownOpening += new Telerik.WinControls.UI.RadPopupOpeningEventHandler(radMultiColumnComboBox1_DropDownOpening); void radMultiColumnComboBox1_DropDownOpening(object sender, CancelEventArgs args) { radMultiColumnComboBox1.MultiColumnComboBoxElement.MultiColumnPopupForm.MinimumSize = new Size(500, 500); }
To reproduce, add RadMultiColumnCombobox on a form and use the following code: public Form1() { InitializeComponent(); Random r = new Random(); DataTable table = new DataTable(); table.Columns.Add("ID", typeof(int)); table.Columns.Add("Name", typeof(string)); table.Columns.Add("Bool", typeof(bool)); table.Columns.Add("DateColumn", typeof(DateTime)); for (int i = 0; i < 10; i++) { table.Rows.Add(i, "Row " + i, r.Next(10) > 5 ? true : false, DateTime.Now.AddHours(i)); } radMultiColumnComboBox1.DataSource = table; radMultiColumnComboBox1.DisplayMember = "Name"; radMultiColumnComboBox1.AutoFilter = true; radMultiColumnComboBox1.DisplayMember = "Name"; FilterDescriptor filter = new FilterDescriptor(); filter.PropertyName = radMultiColumnComboBox1.DisplayMember; filter.Operator = FilterOperator.Contains; radMultiColumnComboBox1.EditorControl.MasterTemplate.FilterDescriptors.Add(filter); } Once the form loads up, select the text in the editable area and enter any number from 0 to 9. It is important the width of the MCCB is smaller than the width the columns take.
When filtering is applied to RadMultiColumnComboBox editor in CellEditorInitialized event of RadGridView, the selected item is second one, if the new row is edited. Workaround: change the event handler by adding the following lines of code in the end of the RadGridView1_CellEditorInitialized: Dim value As Object = e.Row.Cells(e.ColumnIndex).Value If value Is Nothing Then editor.EditorControl.CurrentRow = Nothing Else editor.Value = e.Row.Cells(e.ColumnIndex).Value End If
Shift + Tab navigation causes drop down opening of RadMultiColumnComboBox
Currently RadMultiColumnComboBox uses exact comparison and it is not possible to change this behavior.
FIX. RadMultiColumnComboBox - when a row with null value is selected, instead of an empty string, the editor displays "Telerik.WinControls.UI.GridView"
When auto filter is enabled and filtering is applied, you cannot select the correct item by mouse.
Current item of RadMultiColumnComboBox is changed, when RadDock's document window position is changed.
Currently there is not support for simple binding for this property.
Workaround: radMultiColumnComboBox1.DropDownOpening += new RadPopupOpeningEventHandler(radMultiColumnComboBox1_DropDownOpening); .... void radMultiColumnComboBox1_DropDownOpening(object sender, CancelEventArgs args) { int width = 0; foreach (GridViewDataColumn col in radMultiColumnComboBox1.EditorControl.Columns) { width += col.Width; } radMultiColumnComboBox1.MultiColumnComboBoxElement.MultiColumnPopupForm.MinimumSize = new Size(width, 0); }
The RadMultiColumnComboBox throws exceptions if its data source is empty and the AutoSizeDropDownToBestFit property is set to true.
1. Create a new project with RadMultiColumnComboBox 2. Add rows in unbound mode 3. On a timer clear the Rows collection and insert new rows 4. Run the application and open and close the drop down several times
1. Create a project with RadGridView 2. Add a GridViewMultiComboBoxColumn 3. Attach to CellEditorInitialized event and try to handle PopupOpened event to change the popup size.
The SelectedValueChanged event is not fired when you select the current row after filtering. Resolution: In Q1 2014 SP1 (2014.1.402) the first value from data source is selected by default and the event does not fire for already selected value. If you select second or other value and after that select the first row, the SelectedValueChanged and SelectedIndexChanged are fired.
1. Create a new project and add RadMultiColumnComboBox 2. Bind it and setup filtering 3. Attach to SelectedValueChanged and SelectedIndexChanged events 4. Run the project 5. Apply some filtering and you will see that these events will not fire, regardless that the current row has changed. Work around it by using the EditorControl.CurrentRowChanged event instead of SelectedValueChanged/SelectedIndexChanged events.