Completed
Last Updated: 26 Jan 2017 09:44 by ADMIN
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;
Completed
Last Updated: 20 Nov 2014 15:21 by ADMIN
To reproduce:

Add a RadMultiColumnComboBox fill it with data and set the following settings:

comboBoxColumnElement.EditorControl.AutoSizeRows = true;
comboBoxColumnElement.EditorControl.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill;
comboBoxColumnElement.EditorControl.MasterTemplate.AutoGenerateColumns = false;
comboBoxColumnElement.EditorControl.ShowRowHeaderColumn = false;
comboBoxColumnElement.EditorControl.ShowFilteringRow = false;

comboBoxColumnElement.AutoSize = true;
comboBoxColumnElement.AutoFilter = true;
comboBoxColumnElement.AutoSizeMode = Telerik.WinControls.RadAutoSizeMode.FitToAvailableSize;
comboBoxColumnElement.AutoSizeDropDownToBestFit = true;
comboBoxColumnElement.DropDownMinSize = new Size(420, 150);
comboBoxColumnElement.DropDownSizingMode = SizingMode.UpDownAndRightBottom;



When you open the dropdown you will notice that one time the scrollbar will be on the bottom and the next time it will be on the top and so on.

Workaround:

comboBoxColumnElement.PopupOpened += Popup_Opened;....

Timer timer = new Timer();

private void Popup_Opened(object sender, EventArgs e)

{
timer.Tick += Tick;
timer.Interval = 20;
timer.Start();

}

private void Tick(object sender, EventArgs e)
{
comboBoxColumnElement.EditorControl.TableElement.ScrollToRow(comboBoxColumnElement.EditorControl.SelectedRows(0));

        timer.Stop();

}


Completed
Last Updated: 20 Oct 2014 13:58 by ADMIN
To reproduce: use the following code:
private void Form1_Load(object sender, EventArgs e)
{
    this.productsTableAdapter.Fill(this.nwindDataSet.Products);

    this.radMultiColumnComboBox1.DataSource = this.productsBindingSource;
    this.radMultiColumnComboBox1.DisplayMember = "ProductName";
    this.radMultiColumnComboBox1.MultiColumnComboBoxElement.DropDownAnimationEnabled = false;
}

Follow the steps:
1.Click the arrow button.
2.Scroll to the bottom via the Mouse Wheel
As a result the last 3 rows are missing.
3.Scroll to the top via the Mouse Wheel.
4.Scroll to the bottom via the Mouse Wheel
As a result the 3 missing rows are now visible.

Workaround:
this.radMultiColumnComboBox1.MultiColumnComboBoxElement.PopupOpened+=MultiColumnComboBoxElement_PopupOpened;

private void MultiColumnComboBoxElement_PopupOpened(object sender, EventArgs e)
{
    this.radMultiColumnComboBox1.MultiColumnComboBoxElement.EditorControl.TableElement.VScrollBar.Value =
        this.radMultiColumnComboBox1.MultiColumnComboBoxElement.EditorControl.TableElement.VScrollBar.Maximum;
}
Completed
Last Updated: 20 May 2014 08:53 by ADMIN
To reproduce: 
1. Open the Telerik Examples application (Quick Start Framework)
2. Go to the MultiColumnComboBox example
3. Enter partial text into the box 
4. Click on title to lose focus. You will see that the text will be not cleared. 
When use Tab key, the text will be cleared. 
Completed
Last Updated: 16 Oct 2015 12:04 by ADMIN
To reproduce:
- Ty some text so the items in the drop down are filtered.
- Directly press enter (this should select the first item in the drop down)
- The selected value is updated however the text is not.

Workaround:
Private Sub cbo_SelectedValueChanged(sender As Object, e As EventArgs) Handles RadMultiColumnComboBox1.SelectedValueChanged, RadMultiColumnComboBox2.SelectedValueChanged, RadMultiColumnComboBox3.SelectedValueChanged
    Dim cbo As RadMultiColumnComboBox = sender

    If bLoading = False AndAlso cbo.Text <> CType(cbo.SelectedItem, Telerik.WinControls.UI.GridViewDataRowInfo).Cells(cbo.DisplayMember).Value Then
        cbo.Text = CType(cbo.SelectedItem, Telerik.WinControls.UI.GridViewDataRowInfo).Cells(cbo.DisplayMember).Value
    End If
End Sub
Completed
Last Updated: 16 Nov 2015 13:39 by ADMIN
To reproduce:
- Bind the control to a binding list.
- Add and then remove items at runtime.


Workaround:
radMultiColumnComboBox1.EditorControl.BeginUpdate();

list.RemoveAt(0);

radMultiColumnComboBox1.EditorControl.EndUpdate();
Completed
Last Updated: 10 Dec 2014 11:50 by ADMIN
To reproduce:

Add a RadMultiColumnComboBox with one row. Open and close the dropdown, you will see that the scrollbars will show and hide with every openning

Workaround:

Use the following class:

public class MCCB : RadMultiColumnComboBox
{
    protected override RadMultiColumnComboBoxElement CreateMultiColumnComboBoxElement()
    {
        return new MCCBElement();
    }
}

public class MCCBElement : RadMultiColumnComboBoxElement
{
    protected override Size GetPopupSize(RadPopupControlBase popup, bool measure)
    {
        Size baseSize = base.GetPopupSize(popup, measure);

        RadScrollBarElement hScrollBarElement = this.EditorControl.TableElement.HScrollBar;
        baseSize.Height += (int)hScrollBarElement.ControlBoundingRectangle.Size.Height;

        return baseSize;
    }

    protected override Type ThemeEffectiveType
    {
        get
        {
            return typeof(RadMultiColumnComboBoxElement);
        }
    }
}

Completed
Last Updated: 29 Jan 2015 12:46 by ADMIN
To reproduce: 

1. Add a RadMultiColumnComboBox and set up filtering.
2. Start typing in order to filter all the rows.
3. Click somewhere. As a result the RadMultiColumnComboBox will loose focus.

If you try to get the SelectedIndex or SelectedValue you will notice that the first row in the popup grid is current. It is expected to have no selected row as the entered text does not match any row.

Workaround:

 public class CustomRadMultiColumnComboBox : RadMultiColumnComboBox
        {
            protected override void OnLostFocus(EventArgs e)
            {
                int currentIndex = this.SelectedIndex;
                base.OnLostFocus(e);
                this.SelectedIndex = currentIndex;
            }

            public override string ThemeClassName  
            { 
                get 
                { 
                    return typeof(RadMultiColumnComboBox).FullName;  
                }
            }
        }
Completed
Last Updated: 08 Jun 2015 08:44 by ADMIN
To reproduce:
- Add bound MCCB to a form.
- Open the form at design time.
- Add a control to the form and resize it.
- Start the application and and then close the form.
- You will get the following error "The designer loader did not provide a root component but has not indicated why".
  
Completed
Last Updated: 26 Mar 2015 08:00 by ADMIN
To reproduice:
1. Add mccb and bind it:
            Random random = new Random();
            DataTable dataTable = new DataTable();
            dataTable.Columns.Add("ID", typeof(int));
            dataTable.Columns.Add("Name", typeof(string));
            dataTable.Columns.Add("Bool", typeof(bool));
            dataTable.Columns.Add("DateColumn", typeof(DateTime));
            for (int i = 0; i < 20; i++)
            {
                dataTable.Rows.Add(i, "Row " + i, random.Next(10) > 5 ? true : false, DateTime.Now.AddDays(i));
            }
            this.radMultiColumnComboBox1.DataSource = dataTable;
            this.radMultiColumnComboBox1.DisplayMember = "Name";
            this.radMultiColumnComboBox1.ValueMember = "Name";

2. Add filter and subscribe to the event:
            radMultiColumnComboBox1.AutoFilter = true;

            FilterDescriptor filter = new FilterDescriptor();
            filter.PropertyName = "Name";
            filter.Operator = FilterOperator.Contains;

            this.radMultiColumnComboBox1.EditorControl.MasterTemplate.FilterDescriptors.Add(filter);
            radMultiColumnComboBox1.SelectedIndexChanged += radMultiColumnComboBox1_SelectedIndexChanged;

        void radMultiColumnComboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            Console.WriteLine(string.Format("Row changed, current Name = {0}", radMultiColumnComboBox1.EditorControl.Rows[radMultiColumnComboBox1.SelectedIndex].Cells["Name"].Value));
        }

3. Start the app the selected row is "Row 0". Type in "2", the popup will open showing rows "Row 2" and "Row 12". At this point, pressing Esc or moving the focus away from the control selected Row 2, while it shouldn't.

Completed
Last Updated: 15 Mar 2018 12:07 by Dimitar
To reproduce:

            this.radMultiColumnComboBox1.DataSource = this.customersBindingSource;
            this.radMultiColumnComboBox1.DisplayMember = "CustomerID";
            this.radMultiColumnComboBox1.AutoFilter = true;

            FilterDescriptor filter = new FilterDescriptor();
            filter.PropertyName = this.radMultiColumnComboBox1.DisplayMember;
            filter.Operator = FilterOperator.Contains;
            this.radMultiColumnComboBox1.EditorControl.MasterTemplate.FilterDescriptors.Add(filter);

1. Click the dropdown button, verify that all items list on drop down
2. Type into the textbox so only one item is left( e.g. "BERGS" )
3. While the drop-down is still opened, click the arrow button.
4. Focus another control on the form and then when the user clicks the arrow button, only one item is still shown in the drop down. 

Workaround:
        private void radMultiColumnComboBox1_DropDownClosed(object sender, RadPopupClosedEventArgs args)
        {
            this.radMultiColumnComboBox1.EditorControl.MasterTemplate.Refresh();
        }
Completed
Last Updated: 21 Mar 2019 15:08 by ADMIN
Release 2019.1.318 (03/18/2019)

1. Run the project and press "a" in the editable part of RadMultiColumnCombobox.

2. Press Tab. As a result you will notice that no selection will be available. If you run the project with a version prior to R2 2018 (version 2018.2.515), the selection will be kept.

Completed
Last Updated: 20 Jul 2018 08:09 by Dimitar
To reproduce: run the attached project and refer to the attached gif file.

Workaround:

 this.radMultiColumnComboBox1.MultiColumnComboBoxElement.TextBoxElement.TextBoxItem.TextBoxControl.MouseDown += TextBoxControl_MouseDown;

        private void TextBoxControl_MouseDown(object sender, MouseEventArgs e)
        {
            this.radMultiColumnComboBox1.MultiColumnComboBoxElement.TextBoxElement.TextBoxItem.TextBoxControl.SelectAll();
        }
Completed
Last Updated: 07 Nov 2019 14:16 by ADMIN
Release R1 2020 (LIB 2019.3.1111)
To reproduce:
- Open the attached project.
- Type a text so there are no results in the drop down.
- Press Enter.
- Click the arrow button.

Workaround: 
private void RadMultiColumnComboBox1_DropDownOpened1(object sender, EventArgs e)
{
    if (radMultiColumnComboBox1.Text == "")
    {
        radMultiColumnComboBox1.EditorControl.FilterDescriptors.Clear();
        CompositeFilterDescriptor compositeFilter = new CompositeFilterDescriptor();
        compositeFilter.FilterDescriptors.Add(new FilterDescriptor("Drug", FilterOperator.StartsWith, ""));
        compositeFilter.FilterDescriptors.Add(new FilterDescriptor("Name", FilterOperator.StartsWith, ""));
        compositeFilter.LogicalOperator = FilterLogicalOperator.Or;
        radMultiColumnComboBox1.EditorControl.FilterDescriptors.Add(compositeFilter);
    }
}
Completed
Last Updated: 19 Jul 2016 14:16 by ADMIN
To reproduce:

public Form1()
{
    InitializeComponent();

    DataTable dt = new DataTable();
    dt.Columns.Add("Id", typeof(int));
    dt.Columns.Add("Name", typeof(string));
    for (int i = 0; i < 20; i++)
    {
        dt.Rows.Add(i, "Item" + i);
    }
    this.radMultiColumnComboBox1.DataSource = dt;
    this.radMultiColumnComboBox1.DisplayMember = "Name";
    this.radMultiColumnComboBox1.ValueMember = "Id";
    this.radMultiColumnComboBox1.SelectedValueChanged += radMultiColumnComboBox1_SelectedValueChanged; 
}

private void radMultiColumnComboBox1_SelectedValueChanged(object sender, EventArgs e)
{ 
    if (this.radMultiColumnComboBox1.SelectedIndex > -1)
    {
        MessageBox.Show("Test");
    }
}

NOTE: If you use a RadMessageBox, after showing the message the first time, the popup can't be closed because InvalidOperationException is thrown.

Workaround: show the message box in the RadMultiColumnComboBox.DropDownClosed event.
Completed
Last Updated: 27 Dec 2016 11:01 by ADMIN
Workaround: create a custom RadMultiColumnComboBox control with a custom element. You can also check the attached project.

public class MyRadMultiColumnComboBox : RadMultiColumnComboBox
{
    public override string ThemeClassName
    {
        get
        {
            return typeof(RadMultiColumnComboBox).FullName;
        }
    }

    protected override RadMultiColumnComboBoxElement CreateMultiColumnComboBoxElement()
    {
        return new MyRadMultiColumnComboBoxElement();
    }
}

public class MyRadMultiColumnComboBoxElement : RadMultiColumnComboBoxElement
{
    protected override Type ThemeEffectiveType
    {
        get
        {
            return typeof(RadMultiColumnComboBoxElement);
        }
    }

    protected override void ProcessKeyDown(object sender, KeyEventArgs e)
    {
        base.ProcessKeyDown(sender, e);

        if (this.IsPopupOpen && (e.KeyCode == Keys.PageDown || e.KeyCode == Keys.PageUp))
        {
            this.EditorControl.GridBehavior.ProcessKey(e);
        }
    }
}
Completed
Last Updated: 26 Jan 2017 08:51 by ADMIN
How to reproduce: check the attached project and video

Workaround: create a custom RadMultiColumnComboBoxElement
Public Class MyRadMultiColumnComboBox
    Inherits RadMultiColumnComboBox

    Public Overrides Property ThemeClassName As String
        Get
            Return GetType(RadMultiColumnComboBox).FullName
        End Get
        Set(value As String)
            MyBase.ThemeClassName = value
        End Set
    End Property

    Protected Overrides Function CreateMultiColumnComboBoxElement() As RadMultiColumnComboBoxElement
        Return New MyRadMultiColumnComboBoxEleemnt()
    End Function
End Class

Class MyRadMultiColumnComboBoxEleemnt
    Inherits RadMultiColumnComboBoxElement

    Protected Overrides ReadOnly Property ThemeEffectiveType() As Type
        Get
            Return GetType(RadMultiColumnComboBoxElement)
        End Get
    End Property

    Protected Overrides Sub SetActiveItem(item As String)
        Dim rowIndex As Integer = Me.FindItemIndexExact(Text)

        If rowIndex <> -1 Then
            Me.textBox.SelectionStart = Me.textBox.Text.Length
        End If
    End Sub
End Class
Completed
Last Updated: 19 Jun 2017 12:05 by ADMIN
To reproduce: 

            DataTable dt = new DataTable();

            dt.Columns.Add("ID");
            dt.Columns.Add("Description");

            dt.Rows.Add(new object[] { "0", "Low" });
            dt.Rows.Add(new object[] { "1", "Medium" });
            dt.Rows.Add(new object[] { "2", "High" });
            radMultiColumnComboBox1.DisplayMember = "ID";
            radMultiColumnComboBox1.ValueMember = "ID";
            radMultiColumnComboBox1.DataSource = dt;
            radMultiColumnComboBox1.SelectedValue = "1";

 this.radMultiColumnComboBox1.SelectedValueChanged+=radMultiColumnComboBox1_SelectedValueChanged;

        private void radMultiColumnComboBox1_SelectedValueChanged(object sender, EventArgs e)
        {
            Console.WriteLine(this.radMultiColumnComboBox1.SelectedValue);
        }

If you type 2 in the editable part, the SelectedValue is not changed as in the previous version.

Workaround:

public class MyRadMultiColumnComboBox : RadMultiColumnComboBox
{
    public override string ThemeClassName
    {
        get
        {
            return typeof(RadMultiColumnComboBox).FullName;
        }
    }

    protected override RadMultiColumnComboBoxElement CreateMultiColumnComboBoxElement()
    {
        return new MyRadMultiColumnComboBoxElement();
    }
}

public class MyRadMultiColumnComboBoxElement : RadMultiColumnComboBoxElement
{
    protected override Type ThemeEffectiveType
    {
        get
        {
            return typeof(RadMultiColumnComboBoxElement);
        }
    }

    protected override void SetActiveItem(string text)
    {
        int rowIndex = this.FindItemIndexExact(text);

        if (rowIndex != -1)
        {
            this.EditorControl.CurrentRow = this.EditorControl.Rows[rowIndex];
            this.textBox.SelectionStart = this.textBox.Text.Length;
        }
    }
}
Completed
Last Updated: 23 Sep 2014 13:02 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Sr.
Comments: 2
Category: MultiColumnCombo
Type: Bug Report
1
To reproduce:
-add RadMultiColumnComboBox and bind it to some collection. Use the following code:

radMultiColumnComboBox1.MultiColumnComboBoxElement.EditorControl.ShowItemToolTips = true;
radMultiColumnComboBox1.MultiColumnComboBoxElement.EditorControl.ToolTipTextNeeded += EditorControl_ToolTipTextNeeded;

private void EditorControl_ToolTipTextNeeded(object sender, Telerik.WinControls.ToolTipTextNeededEventArgs e)
        {
           e.ToolTipText ="some text";
        }

As a result the tool tip is not shown.

Workaround:use ScreenTipNeeded event instead
Completed
Last Updated: 03 Dec 2009 17:01 by ADMIN
ADMIN
Created by: Telerik Admin
Comments: 0
Category: MultiColumnCombo
Type: Bug Report
1
TextChanged event of RadMultiColumnComboBox is not fired on many occasions.