multicolumnCombobox

11 posts, 2 answers
  1. Roya
    Roya avatar
    26 posts
    Member since:
    Jan 2012

    Posted 26 Apr 2012 Link to this post

    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);
                
            }
  2. Svett
    Admin
    Svett avatar
    728 posts

    Posted 30 Apr 2012 Link to this post

    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 >>
  3. UI for WinForms is Visual Studio 2017 Ready
  4. Roya
    Roya avatar
    26 posts
    Member since:
    Jan 2012

    Posted 30 Apr 2012 Link to this post

    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.
  5. Answer
    Richard Slade
    Richard Slade avatar
    3000 posts
    Member since:
    May 2009

    Posted 30 Apr 2012 Link to this post

    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
  6. Roya
    Roya avatar
    26 posts
    Member since:
    Jan 2012

    Posted 02 May 2012 Link to this post

    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.
  7. Richard Slade
    Richard Slade avatar
    3000 posts
    Member since:
    May 2009

    Posted 02 May 2012 Link to this post

    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
  8. Roya
    Roya avatar
    26 posts
    Member since:
    Jan 2012

    Posted 02 May 2012 Link to this post

    Thank you Richard
    i use your code but it doesnt work ,the selectedvalue doesnt change to null
  9. Richard Slade
    Richard Slade avatar
    3000 posts
    Member since:
    May 2009

    Posted 02 May 2012 Link to this post

    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
  10. Roya
    Roya avatar
    26 posts
    Member since:
    Jan 2012

    Posted 02 May 2012 Link to this post

    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
  11. Answer
    Richard Slade
    Richard Slade avatar
    3000 posts
    Member since:
    May 2009

    Posted 02 May 2012 Link to this post

    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
  12. Roya
    Roya avatar
    26 posts
    Member since:
    Jan 2012

    Posted 03 May 2012 Link to this post

    thank you Richard .you add a null row to data table and it solve my problem
Back to Top
UI for WinForms is Visual Studio 2017 Ready