The MultiColumnComboBox currently selects the correct value in the popup when using the ENTER key. I want to achieve the same behavior with the TAB key but I haven't succeeded.
Also, if the user's text is not associated to any of the items, I want to empty the textbox so that he sees that's not a valid option.
Thanks!
Sample code :
Also, if the user's text is not associated to any of the items, I want to empty the textbox so that he sees that's not a valid option.
Thanks!
Sample code :
using
System.Collections.Generic;
using
System.Windows.Forms;
using
Telerik.WinControls;
using
Telerik.WinControls.Data;
using
Telerik.WinControls.UI;
namespace
MultiColumnComboAutoSelectWithTab
{
public
class
RandomObject
{
public
int
Id {
get
;
set
; }
public
string
FirstStuff {
get
;
set
; }
public
string
SecondStuff {
get
;
set
; }
public
RandomObject(
int
id,
string
first,
string
second)
{
this
.Id = id;
this
.FirstStuff = first;
this
.SecondStuff = second;
}
}
public
class
Form1 : Form
{
public
Form1()
{
InitializeComponent();
InitializeCustomComponent();
var lst =
new
List<RandomObject>();
lst.Add(
new
RandomObject(1,
"Albert"
,
"Stuff"
));
lst.Add(
new
RandomObject(2,
"Alphonse"
,
"Stuff"
));
this
.radMultiColumnComboBox1.DataSource = lst;
}
private
void
InitializeCustomComponent()
{
this
.radMultiColumnComboBox1.DisplayMember =
"FirstStuff"
;
this
.radMultiColumnComboBox1.ValueMember =
"Id"
;
this
.radMultiColumnComboBox1.EditorControl.Columns.Add(
new
GridViewTextBoxColumn(
"Id"
,
"Id"
));
this
.radMultiColumnComboBox1.EditorControl.Columns[
"Id"
].IsVisible =
false
;
this
.radMultiColumnComboBox1.EditorControl.Columns.Add(
new
GridViewTextBoxColumn(
"FirstStuff"
,
"FirstStuff"
));
this
.radMultiColumnComboBox1.EditorControl.Columns[
"FirstStuff"
].HeaderText =
"First stuff"
;
this
.radMultiColumnComboBox1.EditorControl.Columns.Add(
new
GridViewTextBoxColumn(
"SecondStuff"
,
"SecondStuff"
));
this
.radMultiColumnComboBox1.EditorControl.Columns[
"SecondStuff"
].HeaderText =
"SecondStuff"
;
this
.radMultiColumnComboBox1.AutoFilter =
true
;
this
.radMultiColumnComboBox1.DropDownStyle = RadDropDownStyle.DropDown;
this
.radMultiColumnComboBox1.AutoSize =
true
;
this
.radMultiColumnComboBox1.AutoSizeDropDownToBestFit =
true
;
var filter =
new
FilterDescriptor(
this
.radMultiColumnComboBox1.DisplayMember, FilterOperator.StartsWith,
string
.Empty);
this
.radMultiColumnComboBox1.EditorControl.MasterTemplate.FilterDescriptors.Add(filter);
}
/// <summary>
/// Variable nécessaire au concepteur.
/// </summary>
private
System.ComponentModel.IContainer components =
null
;
/// <summary>
/// Nettoyage des ressources utilisées.
/// </summary>
/// <param name="disposing">true si les ressources managées doivent être supprimées ; sinon, false.</param>
protected
override
void
Dispose(
bool
disposing)
{
if
(disposing && (components !=
null
))
{
components.Dispose();
}
base
.Dispose(disposing);
}
#region AutoGeneratedStuff
private
void
InitializeComponent()
{
this
.radMultiColumnComboBox1 =
new
Telerik.WinControls.UI.RadMultiColumnComboBox();
this
.radTextBox1 =
new
Telerik.WinControls.UI.RadTextBox();
((System.ComponentModel.ISupportInitialize)(
this
.radMultiColumnComboBox1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(
this
.radTextBox1)).BeginInit();
this
.SuspendLayout();
//
// radMultiColumnComboBox1
//
//
// radMultiColumnComboBox1.NestedRadGridView
//
this
.radMultiColumnComboBox1.EditorControl.BackColor = System.Drawing.SystemColors.Window;
this
.radMultiColumnComboBox1.EditorControl.Font =
new
System.Drawing.Font(
"Microsoft Sans Serif"
, 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((
byte
)(0)));
this
.radMultiColumnComboBox1.EditorControl.ForeColor = System.Drawing.SystemColors.ControlText;
this
.radMultiColumnComboBox1.EditorControl.Location =
new
System.Drawing.Point(0, 0);
//
//
//
this
.radMultiColumnComboBox1.EditorControl.MasterTemplate.AllowAddNewRow =
false
;
this
.radMultiColumnComboBox1.EditorControl.MasterTemplate.AllowCellContextMenu =
false
;
this
.radMultiColumnComboBox1.EditorControl.MasterTemplate.AllowColumnChooser =
false
;
this
.radMultiColumnComboBox1.EditorControl.MasterTemplate.EnableGrouping =
false
;
this
.radMultiColumnComboBox1.EditorControl.MasterTemplate.ShowFilteringRow =
false
;
this
.radMultiColumnComboBox1.EditorControl.Name =
"NestedRadGridView"
;
this
.radMultiColumnComboBox1.EditorControl.ReadOnly =
true
;
this
.radMultiColumnComboBox1.EditorControl.ShowGroupPanel =
false
;
this
.radMultiColumnComboBox1.EditorControl.Size =
new
System.Drawing.Size(240, 150);
this
.radMultiColumnComboBox1.EditorControl.TabIndex = 0;
this
.radMultiColumnComboBox1.Location =
new
System.Drawing.Point(81, 78);
this
.radMultiColumnComboBox1.Name =
"radMultiColumnComboBox1"
;
//
//
//
this
.radMultiColumnComboBox1.RootElement.AutoSizeMode = Telerik.WinControls.RadAutoSizeMode.WrapAroundChildren;
this
.radMultiColumnComboBox1.Size =
new
System.Drawing.Size(369, 20);
this
.radMultiColumnComboBox1.TabIndex = 0;
this
.radMultiColumnComboBox1.TabStop =
false
;
this
.radMultiColumnComboBox1.Text =
"radMultiColumnComboBox1"
;
//
// radTextBox1
//
this
.radTextBox1.Location =
new
System.Drawing.Point(81, 131);
this
.radTextBox1.Name =
"radTextBox1"
;
this
.radTextBox1.Size =
new
System.Drawing.Size(330, 20);
this
.radTextBox1.TabIndex = 1;
this
.radTextBox1.TabStop =
false
;
this
.radTextBox1.Text =
"radTextBox1"
;
//
// Form1
//
this
.AutoScaleDimensions =
new
System.Drawing.SizeF(6F, 13F);
this
.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this
.ClientSize =
new
System.Drawing.Size(498, 266);
this
.Controls.Add(
this
.radTextBox1);
this
.Controls.Add(
this
.radMultiColumnComboBox1);
this
.Name =
"Form1"
;
this
.Text =
"Form1"
;
((System.ComponentModel.ISupportInitialize)(
this
.radMultiColumnComboBox1)).EndInit();
((System.ComponentModel.ISupportInitialize)(
this
.radTextBox1)).EndInit();
this
.ResumeLayout(
false
);
this
.PerformLayout();
}
#endregion
private
Telerik.WinControls.UI.RadMultiColumnComboBox radMultiColumnComboBox1;
private
Telerik.WinControls.UI.RadTextBox radTextBox1;
}
}