This is a migrated thread and some comments may be shown as answers.

multicolumnCombobox

10 Answers 371 Views
MultiColumn ComboBox
This is a migrated thread and some comments may be shown as answers.
Roya
Top achievements
Rank 1
Roya asked on 26 Apr 2012, 01:08 PM
hi
I have a problem in multicolumnCombobox.
I set the dropdownStyle=DropDown .so when i do filtering, in some cases
when  the filtering result is only  one row ,this control   sugests and appends the this row,but i  dont want it to append the selected row ,i only want the suggestion .for example i want to write BubllBar ,when i start to writing and  Write 'Bub' ,multicolumnCombobox do filtering  and the filtering row is 'Bube' ,so it appends 'Bube' and then i must delete the 'e' and write 'BubllBar ' .please help me to solve this problem


 private void Form1_Load(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();

            radMultiColumnComboBox1.AutoFilter = true;
            radMultiColumnComboBox1.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDown;
            dt.Columns.Add("Title", typeof(string));

            dt.Rows.Add("Tom");
            dt.Rows.Add("Bube");
            dt.Rows.Add("emy");
            dt.Rows.Add("Kate");
            
            radMultiColumnComboBox1.DataSource = dt;
            radMultiColumnComboBox1.EditorControl.FilterDescriptors.Add("Title", FilterOperator.Contains, string.Empty);
            
        }

10 Answers, 1 is accepted

Sort by
0
Svett
Telerik team
answered on 30 Apr 2012, 12:31 PM
Hello Roya,

We are aware of this limitation and will improve it in one of the next releases. I cannot provide you with a temporary solution due to complexity of the control. You can vote for the feature in our public issue tracking system.

All the best,
Svett
the Telerik team
RadControls for WinForms Q1'12 release is now live! Check out what's new or download a free trial >>
0
Roya
Top achievements
Rank 1
answered on 30 Apr 2012, 02:56 PM
Thank you Svett
I have another problem with multicolumncombobox ,some times 'Selected Value Change '  dosent happen.I dont Know Why!
for example I set the 'SelectedValue '=1   but the selected value doesnt change( while it contains '1' in the values).please help me to solve this problem.
0
Accepted
Richard Slade
Top achievements
Rank 2
answered on 30 Apr 2012, 03:54 PM
Hello Roya, 

Please can you try the following sample. This should demonstrate the SelectedValueChanged event and being able to change the selected value programatically. 

Designer File

namespace RadControlsWinFormsApp1
{
    partial class RadForm1
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;
 
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }
 
        #region Windows Form Designer generated code
 
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RadForm1));
            this.radMultiColumnComboBox1 = new Telerik.WinControls.UI.RadMultiColumnComboBox();
            this.radButton1 = new Telerik.WinControls.UI.RadButton();
            this.radButton2 = new Telerik.WinControls.UI.RadButton();
            this.radButton3 = new Telerik.WinControls.UI.RadButton();
            this.radButton4 = new Telerik.WinControls.UI.RadButton();
            this.radButton5 = new Telerik.WinControls.UI.RadButton();
            this.radButton6 = new Telerik.WinControls.UI.RadButton();
            this.radLabel1 = new Telerik.WinControls.UI.RadLabel();
            ((System.ComponentModel.ISupportInitialize)(this.radMultiColumnComboBox1)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.radButton1)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.radButton2)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.radButton3)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.radButton4)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.radButton5)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.radButton6)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.radLabel1)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this)).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);
            //
            // radMultiColumnComboBox1.NestedRadGridView
            //
            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(12, 12);
            this.radMultiColumnComboBox1.Name = "radMultiColumnComboBox1";
            //
            //
            //
            this.radMultiColumnComboBox1.RootElement.AutoSizeMode = Telerik.WinControls.RadAutoSizeMode.WrapAroundChildren;
            this.radMultiColumnComboBox1.Size = new System.Drawing.Size(204, 20);
            this.radMultiColumnComboBox1.TabIndex = 0;
            this.radMultiColumnComboBox1.TabStop = false;
            this.radMultiColumnComboBox1.Text = "radMultiColumnComboBox1";
            //
            // radButton1
            //
            this.radButton1.Location = new System.Drawing.Point(12, 47);
            this.radButton1.Name = "radButton1";
            this.radButton1.Size = new System.Drawing.Size(29, 24);
            this.radButton1.TabIndex = 1;
            this.radButton1.Tag = resources.GetString("radButton1.Tag");
            this.radButton1.Text = "1";
            //
            // radButton2
            //
            this.radButton2.Location = new System.Drawing.Point(47, 47);
            this.radButton2.Name = "radButton2";
            this.radButton2.Size = new System.Drawing.Size(29, 24);
            this.radButton2.TabIndex = 2;
            this.radButton2.Tag = resources.GetString("radButton2.Tag");
            this.radButton2.Text = "2";
            //
            // radButton3
            //
            this.radButton3.Location = new System.Drawing.Point(82, 47);
            this.radButton3.Name = "radButton3";
            this.radButton3.Size = new System.Drawing.Size(29, 24);
            this.radButton3.TabIndex = 2;
            this.radButton3.Tag = resources.GetString("radButton3.Tag");
            this.radButton3.Text = "3";
            //
            // radButton4
            //
            this.radButton4.Location = new System.Drawing.Point(117, 47);
            this.radButton4.Name = "radButton4";
            this.radButton4.Size = new System.Drawing.Size(29, 24);
            this.radButton4.TabIndex = 2;
            this.radButton4.Tag = resources.GetString("radButton4.Tag");
            this.radButton4.Text = "4";
            //
            // radButton5
            //
            this.radButton5.Location = new System.Drawing.Point(152, 47);
            this.radButton5.Name = "radButton5";
            this.radButton5.Size = new System.Drawing.Size(29, 24);
            this.radButton5.TabIndex = 2;
            this.radButton5.Tag = resources.GetString("radButton5.Tag");
            this.radButton5.Text = "5";
            //
            // radButton6
            //
            this.radButton6.Location = new System.Drawing.Point(187, 47);
            this.radButton6.Name = "radButton6";
            this.radButton6.Size = new System.Drawing.Size(29, 24);
            this.radButton6.TabIndex = 2;
            this.radButton6.Tag = resources.GetString("radButton6.Tag");
            this.radButton6.Text = "6";
            //
            // radLabel1
            //
            this.radLabel1.Location = new System.Drawing.Point(12, 90);
            this.radLabel1.Name = "radLabel1";
            this.radLabel1.Size = new System.Drawing.Size(60, 16);
            this.radLabel1.TabIndex = 3;
            this.radLabel1.Text = "Selected...";
            //
            // RadForm1
            //
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(227, 125);
            this.Controls.Add(this.radLabel1);
            this.Controls.Add(this.radButton6);
            this.Controls.Add(this.radButton5);
            this.Controls.Add(this.radButton4);
            this.Controls.Add(this.radButton3);
            this.Controls.Add(this.radButton2);
            this.Controls.Add(this.radButton1);
            this.Controls.Add(this.radMultiColumnComboBox1);
            this.Name = "RadForm1";
            //
            //
            //
            this.RootElement.ApplyShapeToControl = true;
            this.Text = "RadForm1";
            this.ThemeName = "ControlDefault";
            ((System.ComponentModel.ISupportInitialize)(this.radMultiColumnComboBox1)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.radButton1)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.radButton2)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.radButton3)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.radButton4)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.radButton5)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.radButton6)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.radLabel1)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this)).EndInit();
            this.ResumeLayout(false);
            this.PerformLayout();
 
        }
 
        #endregion
 
        private Telerik.WinControls.UI.RadMultiColumnComboBox radMultiColumnComboBox1;
        private Telerik.WinControls.UI.RadButton radButton1;
        private Telerik.WinControls.UI.RadButton radButton2;
        private Telerik.WinControls.UI.RadButton radButton3;
        private Telerik.WinControls.UI.RadButton radButton4;
        private Telerik.WinControls.UI.RadButton radButton5;
        private Telerik.WinControls.UI.RadButton radButton6;
        private Telerik.WinControls.UI.RadLabel radLabel1;
    }
}

Form 1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Telerik.WinControls;
using Telerik.WinControls.UI;
using Telerik.WinControls.Primitives;
 
namespace RadControlsWinFormsApp1
{
    public partial class RadForm1 : Telerik.WinControls.UI.RadForm
    {
 
        public RadForm1()
        {
            InitializeComponent();
 
 
            List<User> users = new List<User>();
            int i = 0;
            while (i <= 1000)
            {
                users.Add(new User(i, "User " + i.ToString()));
                i++;
            }
 
            this.radButton1.Click += new EventHandler(radButton_Click);
            this.radButton2.Click += new EventHandler(radButton_Click);
            this.radButton3.Click += new EventHandler(radButton_Click);
            this.radButton4.Click += new EventHandler(radButton_Click);
            this.radButton5.Click += new EventHandler(radButton_Click);
            this.radButton6.Click += new EventHandler(radButton_Click);
 
            this.radMultiColumnComboBox1.SelectedValueChanged += new EventHandler(radMultiColumnComboBox1_SelectedValueChanged);
            this.radMultiColumnComboBox1.DropDownStyle = RadDropDownStyle.DropDownList;
            this.radMultiColumnComboBox1.DataSource = users;
            this.radMultiColumnComboBox1.DisplayMember = "Name";
            this.radMultiColumnComboBox1.ValueMember = "Id";
 
            this.radMultiColumnComboBox1.SelectedValue = 1000;
      
        }
 
        void radMultiColumnComboBox1_SelectedValueChanged(object sender, EventArgs e)
        {
            this.radLabel1.Text = this.radMultiColumnComboBox1.SelectedValue.ToString();
        }
 
        void radButton_Click(object sender, EventArgs e)
        {
            int i = Convert.ToInt16(((RadButton)sender).Text);
            this.radMultiColumnComboBox1.SelectedValue = i;
        }
 
 
 
    }
 
    public class User
    {
        public User(int id, string name)
        {
            Id = id;
            Name = name;
        }
 
        public User()
        { }
 
        public int Id
        {
            get;
            set;
        }
 
        public string Name
        {
            get;
            set;
        }
 
    }
}

Hope that helps
Richard
0
Roya
Top achievements
Rank 1
answered on 02 May 2012, 06:45 AM
Thank you Richard
I used your solution and it works.If i want to set SelectedValue=null (when i set the Text="" ,SelectedValue doesnt change to null )

,or if  the ValueMember is charachter ,what should i do?
Ill be Thankfull if you could help me.
0
Richard Slade
Top achievements
Rank 2
answered on 02 May 2012, 10:02 AM
Hello, 

Here is an updated sample that covers your scenario of dealing with null values 

Designer File
namespace RadControlsWinFormsApp1
{
    partial class RadForm1
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;
 
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }
 
        #region Windows Form Designer generated code
 
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.radMultiColumnComboBox1 = new Telerik.WinControls.UI.RadMultiColumnComboBox();
            this.radButton1 = new Telerik.WinControls.UI.RadButton();
            this.radButton2 = new Telerik.WinControls.UI.RadButton();
            this.radButton3 = new Telerik.WinControls.UI.RadButton();
            this.radButton4 = new Telerik.WinControls.UI.RadButton();
            this.radButton5 = new Telerik.WinControls.UI.RadButton();
            this.radButton6 = new Telerik.WinControls.UI.RadButton();
            this.radLabel1 = new Telerik.WinControls.UI.RadLabel();
            this.radButton7 = new Telerik.WinControls.UI.RadButton();
            ((System.ComponentModel.ISupportInitialize)(this.radMultiColumnComboBox1)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.radButton1)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.radButton2)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.radButton3)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.radButton4)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.radButton5)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.radButton6)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.radLabel1)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.radButton7)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this)).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);
            //
            // radMultiColumnComboBox1.NestedRadGridView
            //
            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(12, 12);
            this.radMultiColumnComboBox1.Name = "radMultiColumnComboBox1";
            //
            //
            //
            this.radMultiColumnComboBox1.RootElement.AutoSizeMode = Telerik.WinControls.RadAutoSizeMode.WrapAroundChildren;
            this.radMultiColumnComboBox1.Size = new System.Drawing.Size(204, 20);
            this.radMultiColumnComboBox1.TabIndex = 0;
            this.radMultiColumnComboBox1.TabStop = false;
            this.radMultiColumnComboBox1.Text = "radMultiColumnComboBox1";
            //
            // radButton1
            //
            this.radButton1.Location = new System.Drawing.Point(46, 38);
            this.radButton1.Name = "radButton1";
            this.radButton1.Size = new System.Drawing.Size(29, 24);
            this.radButton1.TabIndex = 1;
            this.radButton1.Text = "1";
            //
            // radButton2
            //
            this.radButton2.Location = new System.Drawing.Point(81, 38);
            this.radButton2.Name = "radButton2";
            this.radButton2.Size = new System.Drawing.Size(29, 24);
            this.radButton2.TabIndex = 2;
            this.radButton2.Text = "2";
            //
            // radButton3
            //
            this.radButton3.Location = new System.Drawing.Point(116, 38);
            this.radButton3.Name = "radButton3";
            this.radButton3.Size = new System.Drawing.Size(29, 24);
            this.radButton3.TabIndex = 2;
            this.radButton3.Text = "3";
            //
            // radButton4
            //
            this.radButton4.Location = new System.Drawing.Point(151, 38);
            this.radButton4.Name = "radButton4";
            this.radButton4.Size = new System.Drawing.Size(29, 24);
            this.radButton4.TabIndex = 2;
            this.radButton4.Text = "4";
            //
            // radButton5
            //
            this.radButton5.Location = new System.Drawing.Point(186, 38);
            this.radButton5.Name = "radButton5";
            this.radButton5.Size = new System.Drawing.Size(29, 24);
            this.radButton5.TabIndex = 2;
            this.radButton5.Text = "5";
            //
            // radButton6
            //
            this.radButton6.Location = new System.Drawing.Point(221, 38);
            this.radButton6.Name = "radButton6";
            this.radButton6.Size = new System.Drawing.Size(29, 24);
            this.radButton6.TabIndex = 2;
            this.radButton6.Text = "6";
            //
            // radLabel1
            //
            this.radLabel1.Location = new System.Drawing.Point(12, 90);
            this.radLabel1.Name = "radLabel1";
            this.radLabel1.Size = new System.Drawing.Size(56, 18);
            this.radLabel1.TabIndex = 3;
            this.radLabel1.Text = "Selected...";
            //
            // radButton7
            //
            this.radButton7.Location = new System.Drawing.Point(11, 38);
            this.radButton7.Name = "radButton7";
            this.radButton7.Size = new System.Drawing.Size(29, 24);
            this.radButton7.TabIndex = 2;
            this.radButton7.Text = "null";
            //
            // RadForm1
            //
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(256, 125);
            this.Controls.Add(this.radButton7);
            this.Controls.Add(this.radLabel1);
            this.Controls.Add(this.radButton6);
            this.Controls.Add(this.radButton5);
            this.Controls.Add(this.radButton4);
            this.Controls.Add(this.radButton3);
            this.Controls.Add(this.radButton2);
            this.Controls.Add(this.radButton1);
            this.Controls.Add(this.radMultiColumnComboBox1);
            this.Name = "RadForm1";
            //
            //
            //
            this.RootElement.ApplyShapeToControl = true;
            this.Text = "RadForm1";
            this.ThemeName = "ControlDefault";
            ((System.ComponentModel.ISupportInitialize)(this.radMultiColumnComboBox1)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.radButton1)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.radButton2)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.radButton3)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.radButton4)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.radButton5)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.radButton6)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.radLabel1)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.radButton7)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this)).EndInit();
            this.ResumeLayout(false);
            this.PerformLayout();
 
        }
 
        #endregion
 
        private Telerik.WinControls.UI.RadMultiColumnComboBox radMultiColumnComboBox1;
        private Telerik.WinControls.UI.RadButton radButton1;
        private Telerik.WinControls.UI.RadButton radButton2;
        private Telerik.WinControls.UI.RadButton radButton3;
        private Telerik.WinControls.UI.RadButton radButton4;
        private Telerik.WinControls.UI.RadButton radButton5;
        private Telerik.WinControls.UI.RadButton radButton6;
        private Telerik.WinControls.UI.RadLabel radLabel1;
        private Telerik.WinControls.UI.RadButton radButton7;
    }
}

Form 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Telerik.WinControls;
using Telerik.WinControls.UI;
using Telerik.WinControls.Primitives;
 
namespace RadControlsWinFormsApp1
{
    public partial class RadForm1 : Telerik.WinControls.UI.RadForm
    {
 
        public RadForm1()
        {
            InitializeComponent();
 
 
            List<User> users = new List<User>();
            users.Add(new User(null, ""));
            int i = 0;
            while (i <= 1000)
            {
                users.Add(new User(i, "User " + i.ToString()));
                i++;
            }
 
            this.radButton1.Click += new EventHandler(radButton_Click);
            this.radButton2.Click += new EventHandler(radButton_Click);
            this.radButton3.Click += new EventHandler(radButton_Click);
            this.radButton4.Click += new EventHandler(radButton_Click);
            this.radButton5.Click += new EventHandler(radButton_Click);
            this.radButton6.Click += new EventHandler(radButton_Click);
            this.radButton7.Click += new EventHandler(radButton_Click); // null
 
            this.radMultiColumnComboBox1.SelectedValueChanged += new EventHandler(radMultiColumnComboBox1_SelectedValueChanged);
            this.radMultiColumnComboBox1.DropDownStyle = RadDropDownStyle.DropDownList;
            this.radMultiColumnComboBox1.DataSource = users;
            this.radMultiColumnComboBox1.DisplayMember = "Name";
            this.radMultiColumnComboBox1.ValueMember = "Id";
            this.radMultiColumnComboBox1.NullText = "Null Text";
 
            this.radMultiColumnComboBox1.SelectedValue = 1000;
 
 
 
        }
 
        void radMultiColumnComboBox1_SelectedValueChanged(object sender, EventArgs e)
        {
            this.radLabel1.Text = this.radMultiColumnComboBox1.Text;
        }
 
        void radButton_Click(object sender, EventArgs e)
        {
             
            string buttonText = ((RadButton)sender).Text;
            if (buttonText == "null") { buttonText = null; }
            int? i;
            if (buttonText == null)
            {
                i = null;
            }
            else
            {
                i = Convert.ToInt16(buttonText);
            }
 
            foreach (GridViewDataRowInfo row in this.radMultiColumnComboBox1.EditorControl.ChildRows)
            {
                if (((int?)row.Cells["Id"].Value) == i)
                {
                    row.IsCurrent = true;
                    row.IsSelected = true;
                    return;
                }
            }
        }
 
    }
 
    public class User
    {
        public User(int? id, string name)
        {
            Id = id;
            Name = name;
        }
 
        public User()
        { }
 
        public int? Id
        {
            get;
            set;
        }
 
        public string Name
        {
            get;
            set;
        }
 
    }
}

Hope that helps
Richard
0
Roya
Top achievements
Rank 1
answered on 02 May 2012, 02:30 PM
Thank you Richard
i use your code but it doesnt work ,the selectedvalue doesnt change to null
0
Richard Slade
Top achievements
Rank 2
answered on 02 May 2012, 02:33 PM
Roya, 

The selected value will not be null, but you will see that the item selected is the one that has a null value. 
Hope that helps
Richard
0
Roya
Top achievements
Rank 1
answered on 02 May 2012, 02:49 PM
Thank you Richard for your reply
but i need to set the selectedvalue =null;
for example when the DropDownStyle  is set to  RadDropDownStyle.DropDown,when i clear the selected text ,i want to set the selected value=null if it doesnt change to null,the selected value shows the previous value which was selected
0
Accepted
Richard Slade
Top achievements
Rank 2
answered on 02 May 2012, 03:48 PM
Hello Roya, 

If you have it set to 
this.radMultiColumnComboBox1.DropDownStyle = RadDropDownStyle.DropDown;
then clearing the text does not change the SelectedValue. As you can see the text of the RadMultiColumnComboBox is blank, but the EditorControl (RadGridView) will still have a selected value. 

The following change to the sample shows a SelectedValue = null exmaple

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Telerik.WinControls;
using Telerik.WinControls.UI;
using Telerik.WinControls.Primitives;
 
namespace RadControlsWinFormsApp1
{
    public partial class RadForm1 : Telerik.WinControls.UI.RadForm
    {
 
        public RadForm1()
        {
            InitializeComponent();
 
 
            List<User> users = new List<User>();
            users.Add(new User(null, ""));
            int i = 0;
            while (i <= 1000)
            {
                users.Add(new User(i, "User " + i.ToString()));
                i++;
            }
 
            this.radButton1.Click += new EventHandler(radButton_Click);
            this.radButton2.Click += new EventHandler(radButton_Click);
            this.radButton3.Click += new EventHandler(radButton_Click);
            this.radButton4.Click += new EventHandler(radButton_Click);
            this.radButton5.Click += new EventHandler(radButton_Click);
            this.radButton6.Click += new EventHandler(radButton_Click);
            this.radButton7.Click += new EventHandler(radButton_Click); // null
 
            this.radMultiColumnComboBox1.SelectedValueChanged += new EventHandler(radMultiColumnComboBox1_SelectedValueChanged);
            this.radMultiColumnComboBox1.DropDownStyle = RadDropDownStyle.DropDown;
            this.radMultiColumnComboBox1.DataSource = users;
            this.radMultiColumnComboBox1.DisplayMember = "Name";
            this.radMultiColumnComboBox1.ValueMember = "Id";
            this.radMultiColumnComboBox1.NullText = "Null Text";
 
            this.radMultiColumnComboBox1.SelectedValue = 1000;
 
            this.radMultiColumnComboBox1.TextChanged += new EventHandler(radMultiColumnComboBox1_TextChanged);
 
 
 
        }
 
        void radMultiColumnComboBox1_TextChanged(object sender, EventArgs e)
        {
            if (this.radMultiColumnComboBox1.Text == null | this.radMultiColumnComboBox1.Text.Length == 0)
            {
                this.radMultiColumnComboBox1.EditorControl.CurrentRow = null;
                this.radMultiColumnComboBox1.EditorControl.ClearSelection();
            }
        }
 
        void radMultiColumnComboBox1_SelectedValueChanged(object sender, EventArgs e)
        {
            if (this.radMultiColumnComboBox1.SelectedValue == null)
            {
                this.radLabel1.Text = "Selected Value Is NULL";
            }
            else
            {
                this.radLabel1.Text = this.radMultiColumnComboBox1.Text;           
            }
 
        }
 
        void radButton_Click(object sender, EventArgs e)
        {
 
            string buttonText = ((RadButton)sender).Text;
            if (buttonText == "null") { buttonText = null; }
            int? i;
            if (buttonText == null)
            {
                i = null;
            }
            else
            {
                i = Convert.ToInt16(buttonText);
            }
 
            foreach (GridViewDataRowInfo row in this.radMultiColumnComboBox1.EditorControl.ChildRows)
            {
                if (((int?)row.Cells["Id"].Value) == i)
                {
                    row.IsCurrent = true;
                    row.IsSelected = true;
                    return;
                }
            }
        }
 
    }
 
    public class User
    {
        public User(int? id, string name)
        {
            Id = id;
            Name = name;
        }
 
        public User()
        { }
 
        public int? Id
        {
            get;
            set;
        }
 
        public string Name
        {
            get;
            set;
        }
 
    }
}

Please remember to mark as answer if this helps
Thanks
Richard
0
Roya
Top achievements
Rank 1
answered on 03 May 2012, 07:05 AM
thank you Richard .you add a null row to data table and it solve my problem
Tags
MultiColumn ComboBox
Asked by
Roya
Top achievements
Rank 1
Answers by
Svett
Telerik team
Roya
Top achievements
Rank 1
Richard Slade
Top achievements
Rank 2
Share this question
or