To reproduce drop RadMultiColumnComboBox on a form and use the code below: public Form1() { InitializeComponent(); ThemeResolutionService.AllowAnimations = false; RadMultiColumnComboBoxElement multiColumnComboElement = this.combo1.MultiColumnComboBoxElement; multiColumnComboElement.DropDownSizingMode = SizingMode.UpDownAndRightBottom; multiColumnComboElement.EditorControl.MasterTemplate.AutoGenerateColumns = false; multiColumnComboElement.EditorControl.AutoGenerateColumns = false; GridViewTextBoxColumn column1 = new GridViewTextBoxColumn("Item"); column1.HeaderText = "Item"; multiColumnComboElement.Columns.Add(column1); GridViewTextBoxColumn column2 = new GridViewTextBoxColumn("Description"); column2.HeaderText = "Description"; multiColumnComboElement.Columns.Add(column2); combo1.DisplayMember = "Description"; combo1.ValueMember = "Item"; this.combo1.AutoSizeDropDownToBestFit = true; this.combo1.DataSource = GetData(); FilterDescriptor filter = new FilterDescriptor(); filter.PropertyName = this.combo1.DisplayMember; filter.Operator = FilterOperator.StartsWith; this.combo1.EditorControl.MasterTemplate.FilterDescriptors.Add(filter); this.combo1.AutoFilter = true; this.combo1.MultiColumnComboBoxElement.AutoCompleteMode = AutoCompleteMode.Suggest; this.combo1.DropDownStyle = RadDropDownStyle.DropDown; this.combo1.SelectedItem = null; } private List<CustomItem> GetData() { List<CustomItem> items = new List<CustomItem>(); for (int i = 0; i < 20; i++) { CustomItem item = new CustomItem(i, String.Format("This is item number: {0}", i.ToString())); items.Add(item); } return items; } } [Serializable] public class CustomItem { public int Item { get; set; } public string Description { get; set; } public CustomItem(int pItem, string pDescription) { this.Item = pItem; this.Description = pDescription; } } Workaround: 1. Enable the animations ThemeResolutionService.AllowAnimations = true; or 2. Increase the popup size by one pixel when opening: void multiColumnComboElement_PopupOpening(object sender, CancelEventArgs e) { RadMultiColumnComboBoxElement multiColumnComboElement = (RadMultiColumnComboBoxElement)sender; multiColumnComboElement.MultiColumnPopupForm.Size = new Size(multiColumnComboElement.MultiColumnPopupForm.Size.Width + 1, multiColumnComboElement.MultiColumnPopupForm.Size.Height); } or 3. Turn off the control clipping ((RadHostItem)((MultiColumnComboPopupForm)multiColumnComboElement.MultiColumnPopupForm).SizingGripDockLayout.Children[1]).ClipControl = false;
If one is using the AutoFilter functionality and want's to select the very first row of the filtered grid, s\he is not able to do so by the keyboard. Resolution: Selection of first row with keyboard is introduced in our KB article Use custom filtering to search in all columns of RadMultiColumnComboBox. Please take a look at the following link http://www.telerik.com/support/kb/winforms/details/use-custom-filtering-to-search-in-radmulticolumncombobox
1. Create a new project with RadGridView and bind it. 2. Add GridViewMultiComboBoxColumn. 3. Set its DataSource to a large data set. 4. Run the project and try to show the drop down.
Currently you can filter in RadMultiColumnComboBox only by setting the AutoFilter property. Resolution: You can use the CompositeFilterDescriptors in RadMultiColumnComboBox and filter two or more columns. Please take a look at the code snippet: this.radMultiColumnComboBox1.DisplayMember = "City"; this.radMultiColumnComboBox1.AutoFilter = true; FilterDescriptor descriptor = new FilterDescriptor(this.radMultiColumnComboBox1.DisplayMember, FilterOperator.StartsWith, "Lo"); //first column FilterDescriptor descriptor2 = new FilterDescriptor("ContactName", FilterOperator.StartsWith, "Pe"); //second columns CompositeFilterDescriptor compositeFilter = new CompositeFilterDescriptor(); compositeFilter.FilterDescriptors.Add(descriptor); compositeFilter.FilterDescriptors.Add(descriptor2); compositeFilter.LogicalOperator = FilterLogicalOperator.Or; //OR between these columns this.radMultiColumnComboBox1.EditorControl.FilterDescriptors.Add(compositeFilter);
This issue is inside the same application as in ticket #667438. There is a MultiColumnComboBox inside the editor form. There are two data sources. One containing the customer's "Rep" field and one for the list of dropdown items (list of Reps). How can the dropdown list be bound to the list of Reps but still display and update the Customer's Rep field? The attached video demonstrates the current behavior of the control.
I tried upgrading to Q1 2013 and am having a problem with speed. In the past some of these big multi-combos were slow but we were able to speed it up by not using size to fit. Now the speed is horrible, especially for the large table. It looks like nothing is happening for quite a while when I click on the drop down button. WORKAROUND: You can call the LoadElementTree method for every combobox in the end of your Load event handler
Currently RadMultiColumnComboBox closes immediately when clicking on a checkbox cell and does not allow changing its value.
Currently it is not possible to select multiple rows in RadMultiColumnComboBox.
RadMultiColumnComboBox disabled state in control default is inconsistent with RadDropDownList theme.
Steps to reproduce: 1. Bind a RMCCB to some data source 2. Enable auto filtering 3. Start the app and enter a value in the text editor of RMCCB 4. Press Tab. You will see that the focus is moved away from the RMCCB but the selection is not changed. Also if you try to open the drop down you will see that it has wrong size. Hitting Escape or Enter instead of Tab produces the correct behavior.
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.
Shift + Tab navigation causes drop down opening of RadMultiColumnComboBox
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.