Articles in this section
Category / Section

How to display the selected row information in WinForms MultiColumnComboBox?

3 mins read

Display the selected the row

MultiColumnComboBox control don’t have direct option to retrieve selected row information and we can be able to get value of DisplayMember column only. So, we need to follow below steps to achieve this requirement.

 

Step 1: Populate the MultiColumnComboBox values from DataTable. The following code demonstrates the same.

C#

// Datasource DataTable        
DataTable dt = new DataTable("DataSource");
dt.Columns.Add("S.No");            
dt.Columns.Add("FirstName");            
dt.Columns.Add("LastName");            
dt.Columns.Add("Occupation");            
dt.Columns.Add("Place");
            
// Create a Data Set            
DataSet ds = new DataSet();            
ds.Tables.Add(dt);            
dt.Rows.Add(new string[] { "1", "Alex", "Zen", "Doctor", "Italy" });            
dt.Rows.Add(new string[] { "2", "Bob", "Harry", "Staff", "London" });            
dt.Rows.Add(new string[] { "3", "Alice", "Peter", "Developer", "US" });            
dt.Rows.Add(new string[] { "4", "Adlensha", "Fdo", "Staff", "Italy" });            
dt.Rows.Add(new string[] { "5", "Brick", "John", "Nurse", "North America" });            
dt.Rows.Add(new string[] { "6", "Collen", "Geo", "Developer", "India" });            
this.multiColumnComboBox1.DataSource = dt;            
this.multiColumnComboBox1.DisplayMember = "Place";

 

Step 2: Create a class to represent the Selected Row information of MultiColumnComboBox control. The following code demonstrates the same.

C#

/// <summary>
/// This represents the Selection Row information in MultiColumnComboBox
/// </summary>
public class SelectedRowInformation
{
  public SelectedRowInformation(string serialNumber, string firstName, string lastName, string occupation, string place)
  {
    SerialNumber = serialNumber;
    FirstName = firstName;
    LastName = lastName;
    Occupation = occupation;
    Place = place;
  }
  /// <summary>
  /// Holds serial number
  /// </summary>
  private string m_serialNumber;
  /// <summary>
  /// Gets/Sets the Serial Number
  /// </summary>
  public string SerialNumber
  {
    get { return m_serialNumber; }
    set { m_serialNumber = value; }
  }
  /// <summary>
  /// Holds the First Name
  /// </summary>
  private string m_FirstName;
  /// <summary>
  /// Gets/Sets the First Name
  /// </summary>
  public string FirstName
  {
    get { return m_FirstName; }
    set { m_FirstName = value; }
  }
  /// <summary>
  /// Holds the Last Name
  /// </summary>
  private string m_LastName;
  /// <summary>
  /// Holds the Last Name
  /// </summary>
  public string LastName
  {
    get { return m_LastName; }
    set { m_LastName = value; }
  }
  /// <summary>
  /// Holds the Occupation
  /// </summary>
  private string m_Occupation;
  /// <summary>
  /// Gets/Sets the Occupation
  /// </summary>
  public string Occupation
  {
    get { return m_Occupation; }
    set { m_Occupation = value; }
  }
  /// <summary>
  /// Holds the Place
  /// </summary>
  private string m_Place;
  /// <summary>
  /// Gets/Sets the Place
  /// </summary>
  public string Place
  {
    get { return m_Place; }
    set { m_Place = value; }
  }
}  

 

Step 3: Create a generic collection property with type of above Class to hold the Selected Row information.

C#

//Collection to hold Selected Row information
List<SelectedRowInformation> SelectedRowsCollection = new List<SelectedRowInformation>();

 

Step 4: The SelectedIndexChanged event will raise, when user selects the dropdown items and in here, we can add selected row information into SelectedRowsCollection. The following code demonstrates the same.

C#

this.multiColumnComboBox1.SelectedIndexChanged+=new EventHandler(multiColumnComboBox1_SelectedIndexChanged);
 
// Here we are adding selected row information for all rows in MultiColumnComboBox
if (this.multiColumnComboBox1.SelectedItem != null && this.multiColumnComboBox1.SelectedItem is DataRowView)
{
  DataRowView selectedRow = this.multiColumnComboBox1.SelectedItem as DataRowView;
  this.SelectedRowsCollection.Add(new SelectedRowInformation(selectedRow.Row["S.No"].ToString(),   selectedRow.Row["FirstName"].ToString(),selectedRow.Row["LastName"].ToString(),  selectedRow.Row["Occupation"].ToString(),  selectedRow.Row["Place"].ToString()));
}

 

Step 5: Now you can retrieve the saved selected row information from SelectedRowsCollection. The following code demonstrates the same.

C#

if (this.SelectedRowsCollection.Count > 0)
{
  MessageBox.Show(this, "S.no : " +   this.SelectedRowsCollection[this.SelectedRowsCollection.Count - 1].SerialNumber + Environment.NewLine
+ "FirstName : " + this.SelectedRowsCollection[this.SelectedRowsCollection.Count - 1].FirstName + Environment.NewLine
+ "LastName : " + this.SelectedRowsCollection[this.SelectedRowsCollection.Count - 1].LastName + Environment.NewLine
+ "Occupation : " + this.SelectedRowsCollection[this.SelectedRowsCollection.Count - 1].Occupation + Environment.NewLine
+ "Place : " + this.SelectedRowsCollection[this.SelectedRowsCollection.Count - 1].Place + Environment.NewLine, "SelectedRowInformation");
}
else
{
  MessageBox.Show("Select any rows in MultiColumnComboBox", "No rows selected");
}

 

Screenshot

Select a row in MultiColumnComboBox

Figure 1: Select a row in MultiColumnComboBox.

 

Show the selected row information

Figure 2: If click the Button, then it will show the selected row information.

 

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please sign in to leave a comment
Access denied
Access denied