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; } } }
To reproduce: please refer to the attached sample project which result is illustrated in the attached gif file. The DropDownClosed is expected to be fired when the drop down is already closed. Hence, showing a message box shouldn't keep the drop down opened. The problem is reproducible with RadDropDownList as well. Note that this problem is not applicable for MS ComboBox. Workaround: this.radMultiColumnComboBox1.MultiColumnComboBoxElement.DropDownAnimationEnabled = false;
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(); }
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); } } }
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(); }
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.
Dear support,
I have an issue with a multicolumn combobox that won't close upon selection.
The first time (when it is empty) everything goes well, but the second time (in the attached video around the 10th second) it won't close the dropdown if you select the item again.
I suspect it is acting that way because I select the same item.
It is an annoying behavior because now users need to click on the little arrow to close the drop down, which is not intuitive.
I recorded a video that illustrates this issue.
Many thanks again.
Kind regards.
Peter.
AutoSizeDropDownToBestFit is not working when i have 3 rows in the drop down list. Scroll bars appear with i have 3 rows, and when i only 2 rows it autosize the width of the dropdown.
[Code ]
Dim TransData As DataTable = New DataTable
TransData.Columns.Add("Index")
TransData.Columns.Add("Type")
TransData.Rows.Add("0", "-- Select --")
TransData.Rows.Add("SEA", "Ship by Sea")
TransData.Rows.Add("AIR", "Ship by Air")
TransData.Rows.Add("VOR", "VOR by Air")
TransportRadMultiColumnComboBox.DataSource = TransData
TransportRadMultiColumnComboBox.DisplayMember = "Type"
TransportRadMultiColumnComboBox.ValueMember = "Index"
TransportRadMultiColumnComboBox.Columns(0).IsVisible = False
TransportRadMultiColumnComboBox.Columns(1).HeaderText = "Transport"
TransportRadMultiColumnComboBox.AutoSizeDropDownToBestFit = True
[Works when i have only 2 rows in my DataTable]
When i add 3 rows to my dataTable the AutoSizeDropDownToBestFit does not work.. WHYYYYYYYY??????
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(); }
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.
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; }
ADD. RadMultiColumnComboBox - add ability to display focus cues when DropDownStyle = DropDownList
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
Using my two screenshots and values, note: 1. Using Keyboard: I have 'A' selected and type a single 'W' to change my selection and hit enter. The next drop-down will still display at the width you see for the original A selection. It will not be until the next drop-down that it resizes correctly. 2. Using Mouse: I have 'A' selected and select the 'WWWW...." from the drop-down with my mouse. The drop-down will appear correctly the next time.
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.
Current item of RadMultiColumnComboBox is changed, when RadDock's document window position is changed.
TextChanged event of RadMultiColumnComboBox is not fired on many occasions.
When you select a row by pressing the left mouse button twice, you will select a wrong row if RadMultiColumnComboBox has filter applied.
To reproduce: Add a RadMultiColumnComboBox and add a DateTime column. Add a filter descriptor for the column and set the autofilter property to true. Type in the textbox and you will see abnormal behavior. Workaround: public class DTConverter : TypeConverter { public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { DateTime dt; if (DateTime.TryParse(value.ToString(), out dt)) { return dt; } return DateTime.MinValue; } public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) { if (sourceType == typeof(string) || sourceType == typeof(DateTime)) { return true; } return base.CanConvertFrom(context, sourceType); } } (this.multiColumnComboBox.MultiColumnComboBoxElement.Columns["SaleDate"] as GridViewDateTimeColumn).FilteringMode = GridViewTimeFilteringMode.Date; (this.multiColumnComboBox.MultiColumnComboBoxElement.Columns["SaleDate"] as GridViewDateTimeColumn).DataTypeConverter = new DTConverter(); Telerik.WinControls.Data.FilterDescriptor oFilter = new Telerik.WinControls.Data.FilterDescriptor(); oFilter.PropertyName = this.multiColumnComboBox.DisplayMember; oFilter.Operator = Telerik.WinControls.Data.FilterOperator.IsGreaterThanOrEqualTo; this.multiColumnComboBox.EditorControl.MasterTemplate.FilterDescriptors.Add(oFilter);